学习记录
TCP/TP协议详解
应用层
数据链路层、网络层和传输层负责处理网络通信细节,这部分必须既稳定又高效,因此它们都在内核空间中实现。而应用层则在用户空间实现,因为它负责处理众多逻辑,如果在内核中实现,则会使内核变得非常庞大。
传输层
1.TCP协议
提供可靠的、面向连接的和基于流的服务
2.UDP协议
提供不可靠、无连接和基于数据报的服务
网络层
1.IP协议
使用逐跳的方式确定通信路径。
2.ICMP协议
主要用于检测网络连接
数据链路层
1.ARP协议
根据IP地址找MAC地址。工作过程如下:
ARP请求(广播)
A电脑向局域网内所有设备广播一个ARP请求,内容大致是:我的IP是IP_A,MAC是MAC_A,请问IP地址是IP_B的设备,你的MAC地址是什么
ARP响应(单播) 局域网内只有IP地址是IP_B的电脑B会识别这个请求,并向电脑A单播回复一个ARP响应包
更新缓存 电脑A收到回复后,将IP_B和MAC_B的对应关系存入本机的ARP缓存中。后续通信将直接使用缓存中的MAC地址,无须再次广播,从而提高了效率。
2.RARP协议
根据MAC地址找IP地址。工作过程如下:
(1)设备启动后,知道自己的MAC地址,但没有IP地址。
(2)它向局域网广播一个RARP请求包,内容大致是:“我的MAC地址是MAC_A,有谁知道我的IP地址是什么?”
(3)局域网内需要有一台预先配置好MAC-IP映射表的RARP服务器。服务器收到请求后,查表找到对应MAC_A的IP地址,然后单播回复给请求设备。
(4)设备收到回复后,便用此IP地址配置自身网络接口
三次握手
(1)客户端向服务端发报文
(2)服务端回客户端报文
(3)客户端向服务端发送确认报文
为什么要三次握手,两次握手行不行?
- 第一次握手 服务端得出结论:客户端的发送能力,服务端的接受能力是正常的
- 第二次握手 客户端得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的,不过此时服务端并不能确认客户端的接收能力是否正常。
- 第三次握手 服务端得出结论:客户端的接收、发送能力正常,服务端自己的发送,接收能力正常。
因此,三次握手才能确认双方的接收与发送能力是否正常。
四次挥手
第一次挥手
客户端发送连接释放报文段,等待服务端确认
第二次挥手
服务端发送确认报文段,
第三次挥手
服务端发送连接释放报文
第四次挥手
客户端发送释放报文
为什么要四次挥手? 因为可能第二次挥手的时候,服务端还没有处理完数据,所以需要第三次挥手。