链路层
ARP协议(Address Resolution Protocol)
请求:广播
应答:单播
根据IP解析MAC地址
免费ARP (源:自己 目标:自己) 检测IP冲突
RARP协议(Reverse Address Resolution Protocol)
根据MAC解析IP,适用于无盘工作站
网络层
IP协议(Internet Protocol)网际协议----计算机之间通信
IP报文结构图
版本 (version) 4 |
报头长度 (Header Length) 4 |
服务类型 (Type of Service) 8 |
总长度 (Total Length) 16 |
20字节IP报头 | |
标识符 (Identifier) 16 |
标志 (Flags) 3 |
片偏移 (Fragment offset) 13 |
|||
生存时间 (Time of live) 8 |
协议 (Protocol) 8 |
首部校验和 (Header Checksum) 16 |
|||
源IP地址 32 |
|||||
目标IP地址 32 | |||||
选项(若有) 32 | |||||
传递数据(n bit) |
报头:20字节
版本:一般为 4 或 6
报头长度:IPv4不固定 20-60(选项40max)
服务类型:对特殊报文处理(0-7)优先级越大越高;配置传输服务类型:如吞吐量、时延、可靠性、费用
总长度:整个IP报文携带最大字节数(65535个字节)
标识符:表示为某一种IP数据包分配一个唯一标识,为保证数据被分段后可重新组合(正确)
标志:有三位
一位 保留
二位 不分片(1=DF)
三位 还有数据被分段至MF=0(1=MF)
片偏移:只产生在分段的情况下,两个分段之间的相对位置
生存时间:经过路由器减1
协议:用于标识OSI上层所携带的具体协议
ICMP协议(Internet Control Message Protocol)控制报文协议,是TCP/IP的子协议----针对错误和状态
用于IP主机、路由器之间传递可达性控制消息,确定信息源信宿是否可达,路由器是否可用。
ICMP协议帧结构
类型 | 编码 | 校验和 |
报文体 |
类型:标示ICMP报文类型
如:3 表示目标不可达
11 超时
0 回显应答
8 回显请求
30 路由跟踪
编码:每种ICMP报文类型中分派出256种子类型
校验和:为IcMP报文提供差错保护
报文体:被封装在ICMP报文中初始数据
传输层
TCP协议(Transmission Control Protocol)传输控制协议----应用程序之间通信
完成可靠性交付传输;双向触发过程
三次握手(为提高效率,2、3合为一次)
1.客户触发服务器,发出 syn=1
2.服务器发送确认信号,ack=1
3.服务器向客户机发送 syn=1,达到相互触发
4.客户机回应触发信号,ack=1
TCP确认窗口 1;滑动窗口 3
安全漏洞:伪造客户端IP发送消息给服务器
UDP协议(User Datagram Protocol)用户数据报协议----应用程序之间的简单通信
用户数据包协议;无连接的传输层协议
源端口 | 目标端口 | 长度 | 校验和 | 被封装的上层数据 |
源端口:一般是随机生成的端口号
目标端口:通常是众所周知的端口号
长度:整个UDP报文长度
TCP与UDP
TCP加强传输数据的可靠性
UDP传输即时数据(速度高)
TCP/IP 中包含一系列用于处理数据通信的协议
TCP(传输控制协议)、UDP(用户数据报协议)、IP(网际协议)、ICMP(因特网消息控制协议)、DACP(动态主机配置协议)
TCP/IP 意味着TCP和IP在一起协同工作
TCP 负责应用软件和网络软件之间的通信
IP 负责计算机之间的通信
TCP 负责将数据分割并装入IP包,然后在它们到达的时候重新组合它们
IP 负责将包发送至接受者
应用层
HTTP(Hyper Text Transfer Protocol)
超文本传输协议,默认端口80;现在不仅作为单纯的协议而是作为一种数据的封装方式
版本: 1.0 、1.1
无状态 有状态
三次握手----访问应答----切断连接----再次访问三次握手……
HTTP请求报文结构
HTTP版本号 | HTTP方法 | URL | 请求头 | 实体头 |
HTTP版本号:1.0/1.1(微软通常使用)
HTTP方法:GET:请求web页面信息
HEAD:申请web页面信息不返回信息体
POST:请求较大数据(代替GET)
URL:被请求的网址
请求头:被请求的文件类型(*/*表示所有的文件类型)
实体头:包含被请求实体的原信息、编码类型
HTTP响应报文结构
HTTP版本号 | 状态码 | 响应头 | 实体头 | 内容 |
HTTP版本号:1.0/1.1
状态码:帮助用户理解HTTP工作状态
1XX 提示信息 表示请求已被成功接收,继续处理
2XX 成功 表示请求已被成功接收,理解,接受
3XX 重定向 要完成请求必须进行更进一步的处理
4XX 客户端错误 请求有语法错误或请求无法实现
5XX 服务器端错误 服务器未能实现合法的请求
常见状态码
200 OK 请求被成功地完成,所请求的资源发送回客户端
302 Found 重定向,新的URL会在response中的Location中返回,浏览器将会自动使用新的URL发出新的Request
304 NOT Modified 代表上次的文档已经被缓存了,还可以继续使用(如果不想使用本地缓存,可以用Ctrl+F5强制刷新页面)
400 Bad Request 客户端请求与语法错误,不能被服务器所理解
403 Forbidden 服务器收到请求,但是拒绝提服务
404 NOT Found 请求资源不存在(输错了URL)
500 Internal Server Error 服务器发生了不可预知的错误
503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后,可能恢复正常
响应头:包括web回应的HTTP内容是否被加密认证,是否公开
实体头:包括HTTP响应编码形式、语言、内容长度、内容、文件类型、最后一次修改时间
HTTP申明封装媒体文件类型从MIME借鉴而来
语法:content-type:<类型>/<子类型>
HTTP内容缓存(不能被缓存)的注意事项
● URL 中带?
● 具有 proxy-authenticate(代理认证)的内容
● 具有 public/private 内容
● 当 pragma = no - cache 的内容
● 当生存时间(TTL)大于有效年龄(Age)的内容
MIME(Multipurpose Internet Mail Extentions)是一种多用途的邮件扩展(附件、功能)
使用特殊的技术将各种多媒体信息编码成ASCII格式
内容类型首部语法:内容类型:<类型>/<子类型>
常见格式:文本(Text)、图像(image)、音频(audio)、视频(video)、模型(model)、应用程序(application)
FTP协议(File Transfer Protocol)文件传输协议
工作模式:主动FTP、被动FTP
端口:TCP20 连接
TCP21 传输
TCP21 连接
TCP1025-5000 任意端口传输
部分防火墙的ACL的故障常见处
主动FTP
首次TCP三次握手(21)
客户端 ——————————————> 服务器
<——————————————
二次TCP三次握手(20)
问题:由服务器到客户端主动访问会被拦截
解决:采用被动FTP或用智能防火墙
被动FTP
TCP三次握手(21)——>告诉使用端口(21)传数据
客户端 ——————————————> 服务器
——————————————>
TCP三次握手(随机)