Python网络编程---------TCP 和 UDP概念面试题

Python网络编程---------TCP 和 UDP概念面试题

- 共同点:

  • 都是传输层协议
  • 都为用户提供服务

- 区别

​ 1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接

  1. TCP 提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。
  2. TCP(流模式)面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP(数据包模式)是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会是员主机的发送速率降低。
  3. 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
  4. TCP 首部开销20字节;UDP的首部开销小,只有8个字节
  5. TCP 的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道基于连接与无连接。
  6. TCP要求系统资源较多,UDP较少。
  7. UDP程序结构胶简单。
  8. TCP保证数据正确性,UDP可能丢包。
  9. TCP保证数据顺序,UDP不保证。
  10. 建立连接时:TCP有三次握手,四次挥手,UDP没有

- 三次握手

​ 客户端通过向服务器端发送一个SYN来床键一个主动打开,作为三路握手的一部分。客户端吧这段连接的序号设定为随机数A。

​ 服务器端应当为一个合法的SYN会送一个SYN/ACK。ACK的确认码为 A+1,SYN/ACK 包本身又有一个随机序号 B。

​ 最后,客户端在发送一个ACK。当服务端受到这个ACK的时候,就完成了三路握手,并进入连接创建状态。此时包序号被设定为收到的确认号A+1, 而相应则为B+1。

  • 四次挥手

    ​ CP的连接的拆除需要发送四个包,因此被称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生出挥手操作。

    ​ (1)客户端A 发送一个FIN,用来关闭客户A到服务器B的数据传送。

    ​ (2)服务器B收到这个FIN,它发回一个ACK, 确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

    ​ (3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。

    ​ (4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。

ARP协议

地址解析协议(Address Resolution Protocol): 根据IP地址获取物理地址的一个TCP/IP协议

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值