关于TCP/IP协议

1、简述 TCP 的三次握手

tcp的几个状态:
SYN表示建立连接,
FIN表示关闭连接,
ACK表示响应,
PSH表示有数据传输,
RST表示连接重置。

在 TCP/IP 协议中,TCP 协议提供可靠的连接服务,采用三次握手建立一个连接。

1)第一次握手:

建立连接时,客户端Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入syn_sent状态,等待 服务器Server确认。

SYN:同步序列编号(Synchronize Sequence Numbers)

2)第二次握手:

Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入syn_rcvd状态。

3)第三次握手:

Client收到确认后,检查ack=J+1,ACK是否为1,如果正确则将标志位ACK为1,ack=K+1,并将该数据包发送Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入established状态,完成三次握手,随后Client和Server之间可以开始传输数据了。

🌂:为什么使用三次握手,两次握手可不可以?

不可以。若服务端在没有确定客户端是否对自己做出正确应答的情况下就建立连接,当客户端因意外使所发的请求报文没有及时到达,服务端收到该请求以为客户端需要建立连接,直接进入ESTABLISHED状态,服务端会一直等待客户端发送数据,造成资源的浪费。 第三次握手协议主要是防止已经失效的连接请求又传到服务器端造成错误。

2、Tcp四次挥手

1)第一次挥手:

Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入fin_wait_1状态。

2)第二次挥手:

Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入 Close_wait状态。此时TCP连接处于半关闭状态,即客户端已经没有要发送的数据了,但服务端若发送数据,则客户端仍要接收。

3)第三次挥手:

Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入Last_ack状态。

4)第四次挥手:

Client收到FIN后,Client进入Time_wait状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入 Closed状态,完成四次挥手。

🌂:为什么要四次挥手?

前两次挥手断开一个方向连接,后两个挥手断开另一方向连接。

3、DNS:域名系统(服务)协议

是一种分布式网络目录服务,主要用于域名与 IP 地址的相互转换,以及控制因特网的电子邮件的发送。

4、网关:

1)网关又称网间连接器、协议转换器。
2)网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。
3)网关是一种充当转换重任的计算机系统或设备。

5、TCP与UDP区别:

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

2)TCP提供可靠的服务。TCP提供超时重发、丢弃重复数据、检验数据、流量控制等功能,保证数据能从一端传到另一端。UDP尽最大努力交付,即不保证可靠交付。

3)UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信

4)每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。

5)TCP对系统资源要求较多,UDP对系统资源要求较少。

6)TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。

6、TCP相关的协议与端口号:

1)FTP:

文件传输协议,端口号21

2)Telnet:

远程登陆端口,端口号23

3)SMTP:

邮件传输协议,发送邮件,服务器开放端口25

4)POP3:

接收邮件,端口号110

5)HTTP:

web服务器传输超文本到本地,端口80

6)HTTPS:

默认端口号443 / tcp, 443 / udp

7、UDP相关协议与端口号:

1)DNS:

用于域名解析,端口53。

2)SNMP:

简单网络管理协议,端口161。

3)TFTP:

简单文件传输协议,端口69。

8、TCP怎么保证可靠性?

1)将数据截断为合理长度。
2)超时重传。
3)应答机制。
4)差错检验。
5)失序重新排序。
6)丢弃重复数据。
7)流量控制(流量控制协议是可变大小的滑动窗口协议)。

9、tcp滑动窗口协议

1)该协议用于网络数据传输时的流量控制,以避免拥塞的发生。
2)该协议允许发送方在停止并等待确认前发生多个数据分组,由于方式方不必每发一个分组就停下来等待确认,因此该协议可以加速数据传输,提高网络吞吐量。

🌂:拥塞控制和流量控制的区别
Ⅰ、流量控制是,端到端的控制,一端发送数据太快,另一端来不及接收,一般通过滑动窗口的大小的改变实现。
Ⅱ、拥塞控制,是一端到另外一段之间的网络发生堵塞导致传输过慢或者丢包,来不及传输。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器、以及降低网络性能的所有因素。

10、TCP拥塞控制,算法名字

1)慢启动,拥塞避免

慢开始门限,加+1,拥塞窗口线性增加,计算慢开始门限,丢包时拥塞窗口的二分之一。

2)快重传

累积确认,接收方计算机知道丢包后,发送三个重复的确认,直接让发送方计算机快速发送丢的包。

3)快恢复

将慢开始门限设为拥塞窗口值,直接进入加法增加拥塞窗口),选择性应答。

11、HTTP协议与TCP联系

1)TCP是传输层通讯协议,定义的是数据传输和连接方式的规范。

2)HTTP是应用层协议,定义的是传输数据的内容规范。

3)HTTP是基于TCP连接基础上的,TCP单纯建立连接,不涉及任何我们需要的请求数据,HTTP是来收发数据。

4)TCP是HTTP进行端对端的数据交互时的数据请求方式。

5)HTTP是TCP进行虚拟线路连接时获得服务端位置—端口号的来源。

12、TCP/IP协议各层的作用

1)应用层:

应用层的任务是通过应用进程之间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程是指主机中正在与运行的程序。对于不同的网络应用需要有不同的应用层协议。在互联网中的应用层协议有很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,等等。

2)传输层:

传输层的任务是负责向两台主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。主要有TCP协议和UDP协议。

3)网络层:

网络层的任务是为分组交换网上的不同主机提供通信服务。在发送数据的时候,网络层把运输层产生的报文段或者用户数据报封装成分组或包进行传送。主要使用IP协议。

4)网络接口层:

操作系统中的设备驱动和计算机对应的网络接口,它们一起处理与传输媒介的物理接口细节。主要有ARP协议和RARP协议。

13、浏览器输入网址之后发生了什么

1)DNS域名解析。

2)HTTP协议生成请求报文。

3)TCP协议将请求报文分割成报文段,进行可靠传输。

4)IP协议进行分组转发。

5)TCP协议重组请求报文。

6)HTTP协议对请求进行处理。

14、TCP连接唯一性如何保证

对TCP而言在三次握手时的SYN标志会使用上一个ISN值,这个值是使用32位计数器,内由0-4294967295,每一次连接容都会分配到一个ISN值,连接双方对这个值会记录共识,假如这个值不一,就说明了这个连接已超时或无效甚至是被人恶意攻击冒充连接。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值