Python--网络编程-----传输层tcp/udp协议

一、传输层的功能是建立端口到端口的通信

二、TCP协议

1、可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

2、tcp报文格式:

3、tcp的三次握手与四次挥手

三次握手,建立连接,四次挥手拆除连接

为什么建立连接三次,而拆除连接需要四次?

因为建立连接的时候服务端可以ack确认信息和请求信息一次发送过去,但是拆除连接的时候如果也合并一次发过去,可能会造成服务端到客户端传送数据中断,因为响应客户端要求

拆除连接的时候,服务端到客户端发送数据并不一定结束,只有结束的时候服务端再发起一次请求,这样才能保证数据完整,

三、udp协议

1、不可靠传输,

2、传输的时候不需要事先建立连接,只要知道目的方的ip和端口就可以,

3、不需要传输确认,

四、TCP与UDP的比较

1、差异,tcp需要实现建立连接,是可靠性传输,数据传输需要确认,得不到确认会重传

                udp发送数据前不需要建立连接,是不可靠性传输,不需要确认

2、适用场景:

tcp适用于对可靠性要求比较高的应用,例如:咱们平常使用的ftp,http等应用,但是会牺牲一些传输效率,

udp适用于对传输效率要求比较高的应用,例如,视频直播,dns等等,

 

posted @ 2018-04-05 15:21  xudachen  阅读(189)  评论(0编辑  收藏  举报