经历了残酷的秋招之后,我总结了全面的TCP/IP面试知识点

本文详细探讨了TCP/IP协议族中的重要概念,包括OSI七层模型、TCP和UDP的特点与区别,以及TCP的可靠传输机制如三次握手、四次挥手、超时重传和拥塞控制。同时,分析了为何在实时通信中选择UDP而非TCP,以及如何通过ARQ协议实现UDP的可靠传输。此外,还讨论了TCP的流量控制与拥塞控制策略,如滑动窗口和慢开始算法。最后,文章涵盖了TCP连接管理和防止死锁的保活计时器,以及提高TCP传输效率的策略。
摘要由CSDN通过智能技术生成

OSI七层模型

OSI七层模型的各层功能:
1.物理层:传输比特流。
2.数据链路层:提供介质访问和链路管理。完成封装成帧,透明传输,差错检测。
3.网络层:IP选址和路由选择。
4.传输层:建立,管理和维护端到端的连接。
5.会话层:建立,管理和维护会话
6.表示层:进行数据格式转换,数据加密
7.应用层:为应用程序提供服务。
在这里插入图片描述

计算机网络的五层协议体系结构

  • 应用层:应用层是体系结构中的最高层。应用层的任务是通过应用进程之间的交互来完成特定网络应用。向用户提供常用的应用程序服务,比如电子邮件,文件传输访问,远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP协议来提供网络内机器间的文件拷贝功能。应用层一般是面向用户的服务。如FTP,TELNET,DNS,SMTP,POP3.
    FTP是文件传输协议,一般上传和下载用FTP服务,数据端口为20H,控制端口为21H.
    TELNET服务是用户远程登录服务,使用23H端口,使用明码传送,保密性差,但简单方便。
    DNS是域名解析服务,提供域名到IP地址之间的转换。
    SMTP是简单邮件传输协议,用来控制信件的发送、中转。
    POP3是邮局协议第3版本,用于接收邮件。
  • 运输层:运输层的任务就是负责两台主机中进程之间的通信提供通用的数据传输服务。网络层是点到点的传输(主机或路由器),而运输层负责端到端(源主机和目的主机)的传输。(通用指的是多种应用可以使用同一个运输层服务)
    功能包括:
    一、格式化信息流。
    二、提供可靠传输。为实现可靠传输,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。
  • 网络层:负责为分组交换网上的不同主机提供通信服务(逻辑通信)。网络层把运输层产生的报文段或用户数据报封装成分组(IP数据报)或包进行传送,另一个任务是选择合适的路由,使源主机运输层传下来的分组,能够通过网络中的路由器找到目的主机。
    IP数据包
  • 数据链路层:将网络层交下来的IP数据报分装成帧,在两个相邻的节点链路上传输帧。每一帧包括数据和必要的控制信息。
    三个基本问题:
    封装成帧:在一段数据的前后分别加上首部和尾部,就构成了一个帧。
    透明传输:表示无论什么样的比特组合的数据,都能够按照原样没有差错的通过这个数据链路层。
    差错检测:比特在传输过程中可能会产生差错,因此必须采用各种差错检测措施。目前广泛使用循环yun余校验
    在这里插入图片描述
  • 物理层:传输比特流。

TCP(传输控制协议)的主要特点

(1)面向连接。
(2)每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。
(3)提供可靠交付的服务。
(4)提供全双工通信。
(5)面向字节流。(指的是虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据仅仅看成是一串无结构的字节流,TCP并不知道字节流的含义)

  • TCP报文:
    标题

TCP协议选项:

1.TCP_NODELAY 选项,可以关闭Nagle算法。
2.窗口扩大选项可以扩大窗口
3.时间戳选项,可以计算超时重传往返时间。

标志位的含义

URG:指示报文中有紧急数据,应尽快传送(相当于高优先级的数据)。
PSH:为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。
RST:TCP连接中出现严重差错(如主机崩溃),必须释放连接,在重新建立连接。
FIN:发送端已完成数据传输,请求释放连接。
SYN:处于TCP连接建立过程。 (Synchronize Sequence Numbers)
ACK:确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。

UDP(用户数据报协议)的主要特点

(1)UDP是无连接的。
(2)尽最大努力交付,但不保证可靠交付
(3)面向报文(发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界)
(4)没有拥塞控制。
(5)支持一对一,一对多和多对多的交互通信。
(6)首部开销小,只有8个字节。

  • udp报文:
    在这里插入图片描述

TCP和UDP的区别

1.TCP面向连接(如打电话要先拨号建立连接)。UDP是无连接的,即发送数据之前不需要建立连接。
2.TCP提供可靠的服务;UDP尽最大努力的交付,即不保证可靠交付。TCP通过检验和,重传机制,序号标识,滑动窗口,确认应答实现可靠传输。如丢包时的重传控制,还可以对次序乱掉的分包进行顺序控制。
3.UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性较高的通信或广播通信。但TCP会有延时,实时性差。
4.每一条的TCP连接只能是点对点的;UDP支持一对一,一对多,多对一和多对多的交互通信。
5.TCP对系统资源要求较多,UDP对系统资源要求较少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值