计算机网络基本知识
1. 计算机网络层以及协议
1.1. 计算机网络体系结构
- OSI(Open System Interconnection)七层体系结构。应用层->表示层->会话层->运输层->网络层->数据链路层->物理层。
- TCP/IP体系结构:应用层->运输层->网际层->网络接口层
- 五层协议体系结构:应用层->运输层->网络层->数据链路层->物理层。
中和OSI和TCP/IP的优点,采用五层协议的体系结构。
- 应用层:其任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(也就是主机正在运行的程序)间的通信和交互的规则。比如HTTP,电子邮件SMTP协议。
- 表示层:数据加密解密。
- 会话层:建立、维护、管理会话连接。
- 运输层:主要任务是负责向两台主机进程之间的通信提供通用的数据传输服务。比如TCP(Transmisson Control Protocol,传输控制协议)和UDP(User Data Protocol,用户数据协议)
- 网络层:负责把运输层产生的数据封装成分组和包进行传送。比如IP协议。另一个任务是选择合适的路由。IP,ICMP,ARP(地址解析协议)
- 数据链路层:数据链路层将网络层交下来的IP数据报分组封装成数据帧。或者将来自物理层的比特流组装成数据帧。参考hereEthernet(以太网协议),PPP(点对点协议)。
- 物理层:在物理层上所传送的数据单位是比特,物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。IEEE 802.1A
【20200908 目前没有准确地答案】在TCP/IP模型中,ARP协议属于IP层;在OSI模型中,ARP协议属于链路层。
2. TCP三次握手和四次挥手
为什么不能是两次握手?here为了实现可靠的数据传输,TCP协议通信的双方,都必须维护一个序列号,从而标识发送出去的数据包中哪些是已经被对方收到的。3次握手的过程即是通信双方相互告知序列号起始值,并确认对方已经收到了序列号起始值的必经步骤。如果只是两次握手, 至多只有连接发起方的起始序列号能被确认, 另一的序列号则得不到确认。
为什么不是4次握手?here。通信过程是A发送SYN,B发回ACK确认,B发送SYN,A发送ACK确认,这是4次挥手,但是B发回的SYN和ACK信号可以合并起来,只用修改报文段中标志位即可,这样可以减少资源浪费。
TCP挥手为什么不能是3次?here.当主动方发送断开连接的请求时,仅仅代表主动方不再发送数据,因此第二次挥手的时候,被动方发送ACK确认自己已经知道主动方不再发送数据。但是被动方可能数据还有需要发送的报文,因此被动方在处理完数据报文之后,再进行第三次挥手,发送断开连接的请求。
3. 路由寻址全过程
参考here从12:42开始看,这个视频讲解的比较清楚。