第八周

1、简述osi七层模型和TCP/IP五层模型

osi七层模型示意图

微信图片_20210115115019.png

osi七层模型各层的含义详细解释

第一层物理层:
物理层(Physical Layer)在局部局域网上传送数据帧(Data Frame),它负责管理电脑通信设备和网
络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机接口卡等
第二层数据链路层
数据链路层(Data Link Layer)负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形
成信息框(Data Frame)。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链
表尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线局域网(Wi-Fi)和通用分组无线服务
(GPRS)等。分为两个子层:逻辑链路控制(logical link control,LLC)子层和介质访问控制
(Media access control,MAC)子层
第三层网络层
网络层(Network Layer)决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成报文。
网络表头包含了网络数据。例如:互联网协议(IP)等。
第四层 传输层
传输层(Transport Layer)把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议
等发送信息。例如:传输控制协议(TCP)等。
第5层 会话层
会话层(Session Layer)负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。
第6层 表示层
主条目:表示层(Presentation Layer)把数据转换为能与接收者的系统格式兼容并适合传输的格式
第7层 应用层
应用层(Application Layer)提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如:
HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3、MySQL等

tcp/ip五层模型

osi七层模型和tcp/ip模型对比图

微信图片_20210115120847.png

tcp/ip简单介绍

tcp/ip全称为传输控制协议/因特网互联协议  Transmission Control Protocol/Internet Protocol
tcp/ip为一个协议栈,包括tcp、ip、udp、icmp、rip、telnet、ftp、smtp、arp等众多协议

各层协议参考图

微信图片_20210115121755.png

tcp/ip和osi七层模型的比较

相同点

两者都是以协议栈的概念为基础
协议栈中的协议彼此相互独立
下层对上层提供服务

不同点

OSI是先有模型;TCP/IP是先有协议,后有模型
OSI是国际标准,适用于各种协议栈;TCP/IP实际标准,只适用于TCP/IP网络
层次数量不同

2、总结描述TCP三次握手四次挥手

TCP三次握手

微信图片_20210115122450.png

第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

TCP的四次挥手

微信图片_20210115123006.png

客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。
服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。
客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。
服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。
客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2∗∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。
服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。

tcp协议的三次握手四次挥手的11种状态集的解释

CLOSED 没有任何连接状态
LISTEN 侦听状态,等待来自远方TCP端口的连接请求
SYN-SENT 在发送连接请求后,等待对方确认
SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认
ESTABLISHED 代表传输连接建立,双方进入数据传送状态
FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认
FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求
TIME-WAIT 完成双向传输连接关闭,等待所有分组消失
CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认
LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失
CLOSING 双方同时尝试关闭传输连接,等待对方确认

3、描述TCP和UDP区别

TCP特性

工作在传输层
面向连接协议
全双工协议
半关闭
错误检查
将数据打包成段,排序
确认机制
数据恢复,重传
流量控制,滑动窗口
拥塞控制,慢启动和拥塞避免算法

**更多关于tcp的内核参数,可参看man 7 tcp**

UDP特性

工作在传输层
提供不可靠的网络访问
非面向连接协议
有限的错误检查
传输性能高
无数据恢复特性

**更多关于udp的内核参数,可参看man 7 udp**

你可能感兴趣的:(第八周)