网络结构:
实际网络的划分为五层
应用层:支持网络应用 ,主要协议:有http、FTP、telnet等协议。
传输层:负责为信源提供应用程序进程间的数据传输 。
主要协议传输控制协议TCP,用户数据报协议UDP。
网络层:负责将数据报独立地从信源发送到信宿,主要协议IP协议。
数据链路层:负责将IP数据报封装成合适在物理网上传输的帧格式并传输,或解封帧数据报。
物理层:负责物理传输。
IOS提供的OSI标准模型(实际中不常用)
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
数据的传输:
传输端 接收端
应用层 应用层
| |
传输层 传输层
| |
网络层 网络层
| |
数据链路层 数据链路层
| |
物理层 —————————————> 物理层
每一层封装都在其报前加上相应的报头,解封中按报头解析。形式上是后进先出的堆栈模型。
最大传输单元(MTU)/路径(MTU)1500
以太网帧格式:目的端MAC地址 源MAC地址 传输类型(IP、ARP) IP数据报
ICMP:检验错误。
ARP:将IP地址转换成MAC地址
RARP: 将MAC地址转换成IP地址
ping的过程:
IP数据报格式
TCP:
URG(Urgent Pointer Field Significant,紧急指针字段标志):表示TCP包的紧急指针字段有效,用来保证TCP连接不被中断,并且督促中间齐备尽快处理这些数据。
ACK(Acknowledgement field significant,确认字段标志): 取1时表示应答字段有效,也即TCP应答号将包含在TCP段中,为0则反之。
PSH(Push Function,推功能):这个标志表示Push操作。所谓Push操作就是指在数据包到达接收端以后,立即送给应用程序,而不是在缓冲区中排队。
RST(Reset the connection,重置连接):这个标志表示感谢连接复位请求,用来复位那些产生错误的连接,也被用来拒绝错误和非法的数据包。
SYN(Synchronize sequence numbers,同步序列号):表示同步序号,用来建立连接。
FIN(No more data from sender):表示发送端已经发送到数据末尾,数据传送完成,发送FIN标志位的TCP段,连接将被断开。
连接的三次握手:
TCP A TCP B
A发送给B(SYN a)
B发送给A(SYN b ACK a+1)
A发送给B(ACK b+1)
连接终止的四次握手:
TCP A TCP B
A调用close()发送 FIN X ACK Y
B发送 ACK X+1
B调用close()发送 FIN Y ACK X+1
A发送 ACK Y+1