TCP/IP协议面试常问知识点,倾心总结


(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/66975129冷血之心的博客)


1、网络包的组成:

          报头/起始帧分界符——MAC头部——IP头部——TCP头部——数据——FCS(帧校验序列)

2、TCP头部由TCP模块负责添加,头部格式如下:(最小20字节)

               发送方端口号
               接收方端口号
               序号(发送数据的顺序编号):发送方告诉接收方该网络包发送的数据相当于所有发送数据的第几个字节。
               ACK号(接收数据的顺序编号)
               数据偏移量
               保留
               控制位:
                    URG:表示紧急指针字段有效
                    ACK:表示接收数据序号字段有效
                    PSH:表示通过flush操作发送的数据
                    RST:强制断开连接,用于异常中断的情况
                    SYN:发送方和接受方相互确认序号,表示连接操作
                    FIN:表示断开连接
               窗口:接收方告知发送方窗口的大小(即无需等待确认认可一起发送的数据量)
               校验和
               紧急指针
               可选字段

3、IP头部和MAC头部由IP模块负责添加。

     IP头部:IP用的头部,包含IP头部
     MAC头部:以太网的头部,包含MAC地址

IP头部格式如下:

          版本号
          头部长度
          服务类型
          总长度:表示IP消息的总长度
          ID号:用于识别包的编号,一般为包的序列号。如果一个包被IP分片,则所有的分片都拥有相同的ID
          标志:该字段有3个比特,有效的是前两个比特。分别表示是否允许分片,当前包是否是分片包
          分片偏移量
          生存时间
          协议号:十六进制表示,TCP:06     UDP:11     ICMP:01
          头部校验和
          发送方IP地址
          接收方IP地址
          可选字段

MAC头部的格式如下:

          接收方MAC地址(48比特,5字节)
          发送方MAC地址
          以太类型:使用的协议类型0000-05DC:IEEE802.3      0800:IP协议      0806:ARP协议      86DD:IPV6


4、数据包分片、重组操作:

          (1)发送方:
                    将数据包分为多个TCP头部+数据包的组合,TCP头部中存着不同的数据序号;之后将多个组合交由IP模块,统一添加IP头部和MAC头部,IP头部的ID号设为统一的。
          (2)接收方:
                    IP模块具有分片重组的功能,如果接收到的包是进过分片的,那么IP模块会将它们还原成原始的包。分片的包会在IP头部的标志字段中进行标记, 当收到分片的包时,IP模块会将其暂时存在内部的内存空间中,然后等待IP头部中具有相同ID的包全部到达,因为同一个包的所有分片都具有相同的 ID。此外,IP头部还有一个 分片偏移量 的字段,它表示当前分片在整个包中所处的位置。根据这些信息,在所有的分片全部收到之后,就可以将它们还原成原始的包。

5、滑动窗口机制:

          所谓滑动窗口,就是在发送一个包之后,不等待ACK号的返回,直接发送后续的一系列包。有效利用等待ACK号的这段时间。
          窗口大小:能够接收的最大数据量。
          注意接收缓冲区的概念、TCP头部中的滑动窗口字段的使用(三次握手时传递互相的窗口大小,并且中途还会更新大小)

6、IP头部的两个IP地址分别为:发送方网卡的IP地址应用程序提供的接收方IP地址

     MAC头部的发送方和接受方的MAC地址分别是发送方网卡的MAC地址;利用ARP(地址解析协议)协议,根据接收方IP地址广播得到的接收方MAC地址
             注意:ARP缓存概念。

7、ICMP协议:

           ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。 ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息


8、UDP传输协议:

          UDP协议使用的具体案例:
               向DNS服务器查询IP地址的时候就是使用的UDP协议。
               发送音频和视频数据。

          像DNS查询等交换控制信息的操作基本上都可以在一个包的大小范围内解决,这种场景下就可以使用UDP协议传输。 UDP协议没有TCP的接收确认、窗口机制。在收发数据前不需要交换控制信息,也就是说不需要建立和断开连接。

UDP头部的格式如下:(8字节)

          发送方端口号
          接收方端口号
          数据长度:UDP头部后面数据的长度
          校验和:用于校验错误

          发送数据:
               从应用程序获取的数据前面加上UDP头部,然后交给IP进行发送就OK了。
          接收数据:
               根据IP头部中的接收方和发送方IP地址,以及UDP头部中的接收方和发送方的端口号,找到对应的套接字并将数据交给相应的应用程序就OK了。


9、TCP与UDP的区别: (转载)

1、基于连接与无连接;
2、对系统资源的要求(TCP较多,UDP少);
3、UDP程序结构较简单;
4、流模式与数据报模式 ;
5、TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。


10、TCP与UDP的区别:

          (1)回答发送数据前是否存在建立连接的过程。
          (2)TCP过确认机制,丢包可以重发,保证数据的正确性;UDP不保证正确性,只是单纯的负责发送数据包。
          (3) UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因             此,应用程序需要选择合适的报文大小。
   (4)UDP的头部,只有8个字节,相对于TCP头部的20个字节信息包的额外开销很小。





这是本人在阅读《网络是怎么连接的》一书的时候,所做的一些读书笔记,结合自己正在校园招聘的经验,希望可以帮助大家。

如果对你有帮助,记得点赞哦~欢迎大家关注我的博客,可以进群366533258一起交流学习哦~







       

  • 23
    点赞
  • 130
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
好的,我会尽力回答你关于TCP/IP协议面试题。 1. 什么是TCP/IP协议TCP/IP协议是一组用于数据传输的网络协议,它是互联网的基础协议。TCP/IP协议是由美国国防部高级研究计划局(ARPA)于20世纪60年代末期设计的,旨在实现全球范围内的计算机互联。 2. TCP/IP协议的分层结构是什么? TCP/IP协议采用了四层分层结构,分别是应用层、传输层、网络层和链路层。每一层都有自己的协议和功能,各层之间通过接口进行通信。 3. TCP和UDP有什么区别? TCP和UDP都是传输层协议,但它们有很大的区别。TCP是面向连接的协议,提供可靠的数据传输和流量控制,但是需要建立连接、维护状态,因此开销较大。而UDP是无连接的协议,不提供可靠的数据传输和流量控制,但是开销较小,适用于实时性要求高的数据传输。 4. 什么是IP地址? IP地址是互联网上的唯一标识符,用于标识网络中的每个设备。IP地址分为IPv4和IPv6两种格式,IPv4由32位二进制数表示,IPv6由128位二进制数表示。 5. 什么是子网掩码? 子网掩码用于划分网络中的主机和子网。它是一个32位的二进制数,与IP地址进行逐位“与”运算,可以得到网络地址和主机地址。子网掩码的作用是将网络划分为多个子网,以便于进行管理和控制。 希望这些回答能够帮助到你。如果你还有其他题,请随时我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温柔狠角色

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值