马哥教育第八周
作者:互联网
1、简述osi七层模型和TCP/IP五层模型
[1]osi七层模型为:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层
第七层应用层:提供为应用软件而设的接口,针对特定应用的协议
第六层表示层:转换数据格式
第五层会话层:管理通信连接
第四层传输层:把传输表头增加到数据上,形成数据包,传输表头包含源和目标端口号,包的序号和确认号,6个标记位等
第三层网络层:路由选择,并将网络表头加至数据包,以形成报文,网络表头包含了目标地址和源地址等信息
第二层数据链路层:建立逻辑连接、进行硬件地址寻址、差错校验等功能。将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。
第一层物理层:在局部局域网上传送数据帧(Data Frame),它负责管理电脑通信设备和网 络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机接口卡等
[2]TCP/IP 5层模型
将OSI7层模型的应用层,表示层,会话层划入了应用层,统一由应用层替代工作
2、总结描述TCP三次握手四次挥手
三次握手:
首先服务器端的某服务处于监听状态(LISTEN),监听在某ip:某port
(1)客户端向服务器端的处于监听状态的ip:port发起连接请求,请求报文中TCP包头中标记位为SYN=1 seq代表客户端发出的包的编号(假设x=200),此时客户端进入SYN-SENT状态
(2)服务器端收到连接请求包后,回应确认包,响应包中TCP包头中标记位为SYN=1 、ACK=1 seq代表服务器端发出的包的编号(假设y=300), ack=201(希望客户端下一个包发送的包的编号为201) ,此时服务器端进入SYNC-RCVD状态
(3)客户端收到服务器端确认报文后,向服务器端发送真正的数据请求,标记位为ACK=1 seq=201 ack=301(希望服务器端的响应包编号)此时双方进入ESTAB-LISHED状态
四次挥手
首先服务器端与客户端已经建立连接,都处于ESTABLISHED状态
假设,客户端主动请求断开连接
(1)客户端发送一个请求断开连接的数据包,包头TCP报文中标记位为FIN=1,seq为客户端发送的数据包的编号(假设u=400) 此时客户端状态为FIN-WAIT-1
(2)服务器端收到断开请求后,回应一个确认包,包头TCP报文中标记位为ACK=1,seq=v代表服务器端发送的数据包编号(假设v=500) ack=401(表示希望客户端下个包的编号是401)此时服务器端进入CLOSE-WAIT
(3)服务器将先前客户端请求的数据,与断开请求发送给客户端,包头TCP报文中标记位为 FIN=1 ACK=1 seq=w(由于先前的v未收到客户端的响应报文,所以重新使用一个与编号v无关的编号w,假设为300) ack=401,服务器端进入LAST-ACK状态
(4)客户端收到服务器端的断开请求后,发送确认响应包,ACK=1 seq=401 ack=301 此时客户端进入TIME-WAIT 状态,在等待2MSL的时间后,会进入CLOSED状态
(2MSL时间为TCP报文段在网络中的最大生存时间, RFC 1122标准的建议值是2min),TIME-WAIT状态是是为了当最后一个ACK丢失时,可以再发送一次。因为服务端在等待超时后会再发送一个FIN给客户端,进而客户端知道ACK已丢失
服务器端开收到客户端回复的ACK=1的报文后,进入CLOSED状态
3、描述TCP和UDP区别
[1] UDP 是不需要和 TCP一样在发送数据前进行三次握手建立连接的,想发数据就可以开始发送了。并且也只是数据报文的搬运工,不会对数据报文进行任何拆分和拼接操作。
因此,通信都不需要建立连接,想发就发,这样的情况肯定不可靠。
因此UDP包头,结构简单,头部开销小,只有八字节,相比 TCP 的至少二十字节要少得多,在传输数据报文时是很高效的。
网络环境时好时坏,但是 UDP 因为没有拥塞控制,一直会以恒定的速度发送数据。即使网络条件不好,也不会对发送速率进行调整。这样实现的弊端就是在网络条件不好的情况下可能会导致丢包,但是优点也很明显,在某些实时性要求高的场景(比如电话会议)就需要使用 UDP 而不是 TCP。
总结:
- TCP向上层提供面向连接的可靠服务 ,UDP向上层提供无连接不可靠服务。
- 虽然 UDP 并没有 TCP 传输来的准确,但是也能在很多实时性要求高的地方有所作为
- 对数据准确性要求高,速度可以相对较慢的,可以选用TCP
UDP 头部包含了以下几个数据:
- 两个十六位的端口号,分别为源端口(可选字段)和目标端口
- 整个数据报文的长度
- 整个数据报文的检验和(IPv4 可选 字段),该字段用于发现头部信息和数据中的错误
UDP包头:
标签:UDP,马哥,服务器端,ACK,报文,第八,TCP,教育,客户端 来源: https://www.cnblogs.com/zhaoyilei/p/14638879.html