当前位置:首页 > 经验 >

一文看懂tcpip协议(tcpip协议详解入门)

来源:原点资讯(m.360kss.com)时间:2022-10-29 23:55:23作者:YD166手机阅读>>

一文看懂tcpip协议,tcpip协议详解入门(9)

通过端口号、IP地址、协议号进行通信识别

  • ① 和② 的通信是在两台计算机上进行的。它们的目标端口号相同,都是80。这里可以根据源端口号加以区分。
  • ③ 和 ① 的目标端口号和源端口号完全相同,但它们各自的源 IP 地址不同。
  • 此外,当 IP 地址和端口号全都一样时,我们还可以通过协议号来区分(TCP 和 UDP)。

1.3 端口号的确定

  • 标准既定的端口号:这种方法也叫静态方法。它是指每个应用程序都有其指定的端口号。但并不是说可以随意使用任何一个端口号。例如 HTTP、FTP、TELNET 等广为使用的应用协议中所使用的端口号就是固定的。这些端口号被称为知名端口号,分布在 0~1023 之间;除知名端口号之外,还有一些端口号被正式注册,它们分布在 1024~49151 之间,不过这些端口号可用于任何通信用途。
  • 时序分配法:服务器有必要确定监听端口号,但是接受服务的客户端没必要确定端口号。在这种方法下,客户端应用程序完全可以不用自己设置端口号,而全权交给操作系统进行分配。动态分配的端口号范围在 49152~65535 之间。

1.4 端口号与协议

  • 端口号由其使用的传输层协议决定。因此,不同的传输层协议可以使用相同的端口号。
  • 此外,那些知名端口号与传输层协议并无关系。只要端口一致都将分配同一种应用程序进行处理。

2. UDP

  • UDP 不提供复杂的控制机制,利用 IP 提供面向无连接的通信服务。
  • 并且它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。即使是出现网络拥堵的情况,UDP 也无法进行流量控制等避免网络拥塞行为。
  • 此外,传输途中出现丢包,UDP 也不负责重发。
  • 甚至当包的到达顺序出现乱序时也没有纠正的功能。
  • 如果需要以上的细节控制,不得不交由采用 UDP 的应用程序去处理。
  • UDP 常用于一下几个方面:1.包总量较少的通信(DNS、SNMP等);2.视频、音频等多媒体通信(即时通信);3.限定于 LAN 等特定网络中的应用通信;4.广播通信(广播、多播)。

3. TCP

  • TCP 与 UDP 的区别相当大。它充分地实现了数据传输时各种控制功能,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。而这些在 UDP 中都没有。
  • 此外,TCP 作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。
  • 根据 TCP 的这些机制,在 IP 这种无连接的网络上也能够实现高可靠性的通信( 主要通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现)。

3.1 三次握手(重点)

  • TCP 提供面向有连接的通信传输。面向有连接是指在数据通信开始之前先做好两端之间的准备工作。
  • 所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发。

下面来看看三次握手的流程图:

一文看懂tcpip协议,tcpip协议详解入门(10)

三次握手

  • 第一次握手:客户端将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给服务器端,客户端进入SYN_SENT状态,等待服务器端确认。
  • 第二次握手:服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将标志位SYN和ACK都置为1,ack=J 1,随机产生一个值seq=K,并将该数据包发送给客户端以确认连接请求,服务器端进入SYN_RCVD状态。
  • 第三次握手:客户端收到确认后,检查ack是否为J 1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K 1,并将该数据包发送给服务器端,服务器端检查ack是否为K 1,ACK是否为1,如果正确则连接建立成功,客户端和服务器端进入ESTABLISHED状态,完成三次握手,随后客户端与服务器端之间可以开始传输数据了。

3.2 四次挥手(重点)

  • 四次挥手即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发。
  • 由于TCP连接是全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭。

下面来看看四次挥手的流程图:

一文看懂tcpip协议,tcpip协议详解入门(11)

四次挥手

  • 中断连接端可以是客户端,也可以是服务器端。
  • 第一次挥手:客户端发送一个FIN=M,用来关闭客户端到服务器端的数据传送,客户端进入FIN_WAIT_1状态。意思是说"我客户端没有数据要发给你了",但是如果你服务器端还有数据没有发送完成,则不必急着关闭连接,可以继续发送数据。
  • 第二次挥手:服务器端收到FIN后,先发送ack=M 1,告诉客户端,你的请求我收到了,但是我还没准备好,请继续你等我的消息。这个时候客户端就进入FIN_WAIT_2 状态,继续等待服务器端的FIN报文。
  • 第三次挥手:当服务器端确定数据已发送完成,则向客户端发送FIN=N报文,告诉客户端,好了,我这边数据发完了,准备好关闭连接了。服务器端进入LAST_ACK状态。
  • 第四次挥手:客户端收到FIN=N报文后,就知道可以关闭连接了,但是他还是不相信网络,怕服务器端不知道要关闭,所以发送ack=N 1后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。服务器端收到ACK后,就知道可以断开连接了。客户端等待了2MSL后依然没有收到回复,则证明服务器端已正常关闭,那好,我客户端也可以关闭连接了。最终完成了四次握手。

上面是一方主动关闭,另一方被动关闭的情况,实际中还会出现同时发起主动关闭的情况,

具体流程如下图:

一文看懂tcpip协议,tcpip协议详解入门(12)

栏目热文

tcpip必背十个问题(100个通信基础知识普及)

tcpip必背十个问题(100个通信基础知识普及)

本节重点1.理解传输层的作用, 深入理解TCP的各项特性和机制 2.对整个TCP/IP协议有系统的理解 3.对TCP/I...

2022-10-29 23:41:25查看全文 >>

网络七层协议记忆口诀(网络七层协议的通俗理解)

网络七层协议记忆口诀(网络七层协议的通俗理解)

首先,请看软考原文教程是这样描述的:国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连...

2022-10-29 23:18:40查看全文 >>

tcpip协议通俗易懂(tcp拥塞控制的四种算法)

tcpip协议通俗易懂(tcp拥塞控制的四种算法)

TCP/IP协议,或称为TCP/IP协议栈,或互联网协议系列。TCP/IP协议栈(按TCP/IP参考模型划分) 包含了一...

2022-10-29 23:09:37查看全文 >>

辣炸鸡的做法视频教程(香辣炸鸡正宗做法视频)

辣炸鸡的做法视频教程(香辣炸鸡正宗做法视频)

去夜市你们都会吃什么呢?炸物一定是其中会买的一项,这间在逢甲夜市里的「酱鸡铺」买一份边走边吃特别适合,他们家的炸鸡真的很...

2022-10-29 23:13:15查看全文 >>

正宗酸甜炸鸡的做法(六种口味炸鸡的做法)

正宗酸甜炸鸡的做法(六种口味炸鸡的做法)

好久没有光顾楼下的快餐炸鸡店了,今天想外卖买一份炸鸡,结果不出所料的没有开门营业。 他家的炸鸡真的超级好吃,吃着炸鸡,喝...

2022-10-29 23:07:31查看全文 >>

tcp三次握手和4次挥手的过程(tcp三次握手和4次挥手的过程图)

tcp三次握手和4次挥手的过程(tcp三次握手和4次挥手的过程图)

推荐阅读:PS:通俗一点的解释都会在引用块中Nothing is true, Everything is permitt...

2022-10-29 23:21:24查看全文 >>

什么是tcp协议通俗易懂(tcp协议几种)

什么是tcp协议通俗易懂(tcp协议几种)

优质文章,及时送达本文来源于嵌入式LinuxTCP 是互联网核心协议之一,本文介绍它的基础知识。一、TCP 协议的作用互...

2022-10-29 23:56:34查看全文 >>

tcp三次握手和4次挥手(tcp出现大量closewait解决办法)

tcp三次握手和4次挥手(tcp出现大量closewait解决办法)

作者:ThinkWon原文:https://blog.csdn.net/ThinkWon/article/details...

2022-10-29 23:56:05查看全文 >>

tcp协议三次握手动画(tcp四次挥手)

tcp协议三次握手动画(tcp四次挥手)

专注于Java领域优质技术,欢迎关注作者:老钱 占小狼博客TCP三次握手和四次挥手的问题在面试中是最为常见的考点之一。很...

2022-10-29 23:24:31查看全文 >>

tcpip协议基础知识(tcpip协议详细步骤)

tcpip协议基础知识(tcpip协议详细步骤)

参考书籍为《图解tcp/ip》-第五版。这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及...

2022-10-29 23:47:10查看全文 >>

文档排行