tcp ip(TCP/IP协议是什么)

2024-05-16 11:56:38 24

tcp ip(TCP/IP协议是什么)

大家好,今天小编来为大家解答以下的问题,关于tcp ip,TCP/IP协议是什么这个很多人还不知道,现在让我们一起来看看吧!

本文目录

TCP/IP协议是什么

TCP/IP协议是什么

  TCP和UDP处在同一层---运输层,但是TCP和UDP最不同的地方是,TCP提供了一种可靠的数据传输服务,TCP是面向连接的,也就是说,利用TCP通信的两台主机首先要经历一个“拨打电话”的过程,等到通信准备结束才开始传输数据,最后结束通话。所以TCP要比UDP可靠的多,UDP是把数据直接发出去,而不管对方是不是在收信,就算是UDP无法送达,也不会产生ICMP差错报文,这一经时重申了很多遍了。

  把TCP保证可靠性的简单工作原理:

  应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的 数据报长度将保持不变。由TCP传递给IP的信息单位称为报文段或段

  当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能 及时收到一个确认,将重发这个报文段.

  当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒.

  TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输 过程中的任何变化。如果收到段的检验和有差错, T P将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。

  既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段 的到达也可能会失序。如果必要, TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。

  TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。

  从这段话中可以看到,TCP中保持可靠性的方式就是超时重发,这是有道理的,虽然TCP也可以用各种各样的ICMP报文来处理这些,但是这也不是可靠的,最可靠的方式就是只要不得到确认,就重新发送数据报,直到得到对方的确认为止。

  TCP的首部和UDP首部一样,都有发送端口号和接收端口号。但是显然,TCP的首部信息要比UDP的多,可以看到,TCP协议提供了发送和确认所需要的所有必要的信息。可以想象一个TCP数据的发送应该是如下的一个过程。

  双方建立连接

  发送方给接受方TCP数据报,然后等待对方的确认TCP数据报,如果没有,就重新发,如果有,就发送下一个数据报。

  接受方等待发送方的数据报,如果得到数据报并检验无误,就发送ACK(确认)数据报,并等待下一个TCP数据报的到来。直到接收到FIN(发送完成数据报)

  中止连接

  可以想见,为了建立一个TCP连接,系统可能会建立一个新的进程(最差也是一个线程),来进行数据的传送

  --

  TCP协议

  TCP是一个面向连接的协议,在发送输送之前 ,双方需要确定连接。而且,发送的数据可以进行TCP层的分片处理。

  TCP连接的建立过程 ,可以看成是三次握手 。而连接的中断可以看成四次握手 。

  1.连接的建立

  在建立连接的时候,客户端首先向服务器申请打开某一个端口(用SYN段等于1的TCP报文),然后服务器端发回一个ACK报文通知客户端请求报文收到,客户端收到确认报文以后再次发出确认报文确认刚才服务器端发出的确认报文(绕口么),至此,连接的建立完成。这就叫做三次握手。如果打算让双方都做好准备的话,一定要发送三次报文,而且只需要三次报文就可以了。

  可以想见,如果再加上TCP的超时重传机制,那么TCP就完全可以保证一个数据包被送到目的地。

  2.结束连接

  TCP有一个特别的概念叫做half-close,这个概念是说,TCP的连接是全双工(可以同时发送和接收)连接,因此在关闭连接的`时候,必须关闭传和送两个方向上的连接。客户机给服务器一个FIN为1的TCP报文,然后服务器返回给客户端一个确认ACK报文,并且发送一个FIN报文,当客户机回复ACK报文后(四次握手),连接就结束了。

  3.最大报文长度

  在建立连接的时候,通信的双方要互相确认对方的最大报文长度(MSS),以便通信。一般这个SYN长度是MTU减去固定IP首部和TCP首部长度。对于一个以太网,一般可以达到1460字节。当然如果对于非本地的IP,这个MSS可能就只有536字节,而且,如果中间的传输网络的MSS更加的小的话,这个值还会变得更小。

  4.客户端应用程序的状态迁移图

  客户端的状态可以用如下的流程来表示:

  CLOSED-》SYN_SENT-》ESTABLISHED-》FIN_WAIT_1-》FIN_WAIT_2-》TIME_WAIT-》CLOSED

  以上流程是在程序正常的情况下应该有的流程,从书中的图中可以看到,在建立连接时,当客户端收到SYN报文的ACK以后,客户端就打开了数据交互地连接。而结束连接则通常是客户端主动结束的,客户端结束应用程序以后,需要经历FIN_WAIT_1,FIN_WAIT_2等状态,这些状态的迁移就是前面提到的结束连接的四次握手。

  5.服务器的状态迁移图

  服务器的状态可以用如下的流程来表示:

  CLOSED-》LISTEN-》SYN收到-》ESTABLISHED-》CLOSE_WAIT-》LAST_ACK-》CLOSED

  在建立连接的时候,服务器端是在第三次握手之后才进入数据交互状态,而关闭连接则是在关闭连接的第二次握手以后(注意不是第四次)。而关闭以后还要等待客户端给出最后的ACK包才能进入初始的状态。

  6.TCP服务器设计

  前面曾经讲述过UDP的服务器设计,可以发现UDP的服务器完全不需要所谓的并发机制,它只要建立一个数据输入队列就可以。但是TCP不同,TCP服务器对于每一个连接都需要建立一个独立的进程(或者是轻量级的,线程),来保证对话的独立性。所以TCP服务器是并发的。而且TCP还需要配备一个呼入连接请求队列(UDP服务器也同样不需要),来为每一个连接请求建立对话进程,这也就是为什么各种TCP服务器都有一个最大连接数的原因。而根据源主机的IP和端口号码,服务器可以很轻松的区别出不同的会话,来进行数据的分发。

  TCP的交互数据流

  对于交互性要求比较高的应用,TCP给出两个策略来提高发送效率和减低网络负担:(1)捎带ACK。(2)Nagle算法(一次尽量多的发数据)

  捎带ACK的发送方式

  这个策略是说,当主机收到远程主机的TCP数据报之后,通常不马上发送ACK数据报,而是等上一个短暂的时间,如果这段时间里面主机还有发送到远程主机的TCP数据报,那么就把这个ACK数据报“捎带”着发送出去,把本来两个TCP数据报整合成一个发送。一般的,这个时间是200ms。可以明显地看到这个策略可以把TCP数据报的利用率提高很多。

  Nagle算法

  上过bbs的人应该都会有感受,就是在网络慢的时候发贴,有时键入一串字符串以后,经过一段时间,客户端“发疯”一样突然回显出很多内容,就好像数据一下子传过来了一样,这就是Nagle算法的作用。

  Nagle算法是说,当主机A给主机B发送了一个TCP数据报并进入等待主机B的ACK数据报的状态时,TCP的输出缓冲区里面只能有一个TCP数据报,并且,这个数据报不断地收集后来的数据,整合成一个大的数据报,等到B主机的ACK包一到,就把这些数据“一股脑”的发送出去。虽然这样的描述有些不准确,但还算形象和易于理解,我们同样可以体会到这个策略对于低减网络负担的好处。

  在编写插口程序的时候,可以通过TCP_NODELAY来关闭这个算法。并且,使用这个算法看情况的,比如基于TCP的X窗口协议,如果处理鼠标事件时还是用这个算法,那么“延迟”可就非常大了。

;

tcpip和modbus tcp ip有什么区别 如果两个PLC分别用了两种协议能不能实现通讯

两个PLC分别用了两种协议可以实现通讯。

tcpip和modbus tcp ip的区别如下:

1、主体不同

(1)tcpip:是指可以在多个不同网络之间实现信息传输的协议簇。

(2) modbus tcp ip:协议簇的实现是处于TCP/IP协议族的最上层应用,实现需要操作系统的TCP/IP协议栈的支撑。

2、特点不同

(1) tcpip:指定了Internet各个部分之间通信的标准和方法。 TCP/IP传输协议是确保网络数据信息及时完整传输的两个重要协议。

(2)modbus tcp ip:串行链路通信中的主从模式的概念演变为客户端和服务器。客户端等同于主机,服务器等同于从机。串行链路的主从架构演变为多客户端和多服务器架构。

3、功能不同

(1) tcpip:是Internet上最基本的协议。应用层的主要协议是Telnet,FTP,SMTP等,用于根据不同的应用需求和方法从传输层接收数据或将数据传输到传输层。

(2)modbus tcp ip:使用RS-232C兼容的串行接口,该接口定义了引脚,电缆,信号位,传输波特率和连接端口的奇偶校验。控制器可以直接联网,也可以通过调制解调器联网。

参考资料来源:

百度百科-TCP/IP协议

百度百科-MODBUS协议

TCP/IP协议

TCP/IP协议是一个协议集合,HTTP协议,IP协议,TCP协议,DNS协议等都属于TCP/IP协议。 TCP/IP协议是为了保证全球亿万台计算机能准确、无误的通信。 TCP/IP中分层是很重要的概念,每层完成不同的功能。分为应用层,传输层,网络层,数据链路层。分层的目的是为了层级之间的功能相对队里,互不影响。TCP/IP通信数据流    HTTP是基于TCP/IP协议的应用层协议,它不涉及数据包的传输,主要规定了客户端和服务器端的通信协议,默认端口是80     IP协议的作用是将各种数据包准确无误的传递给对方,其中重要的条件是IP地址和MAC地址。由于IP地址是稀有资源,不可能每个人都有一个IP地址,所以我们通常的IP地址都是路由器给我们生成的IP地址,路由器里面会记录我们的MAC地址,而MAC地址是唯一的。     IP实现的两个基本功能:寻址和分段     寻址功能就是原地址和目标地址之间建立连接,需要使用ARP协议(Address Resolution Protocol),IP协议就是找到一条连接两台电脑的路径,从而完成数据的交互。     地址解析协议,ARP协议,是根据IP地址获取物理地址的一个TCP/IP协议。IP间的通信依赖MAC地址。在进行中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标,这时就会采用ARP协议,根据通讯放的IP地址就可以反查出对应的MAC地址,从而进行精确的定位,完成寻址的功能。     分段功能是为了适应不同网络对包的要求,对数据进行重新组装。     TCP协议就是将数据包安全的给对方,IP协议是找到对方的详细地址,分工不同,互不冲突。     TCP属于传输层,提供可靠的字节流服务。字节流类似于数据切割,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。可靠的传输服务是指,能够把数据准确可靠的传给对方。TCP协议为了更容易的传输大数据才将数据进行分割,而且TCP协议能够确认数据最终是否送达对方。     为了确保信息准确无误的送达,TCP采用了三次握手策略(three-way-handshaking)。TCP建立连接时需要三次握手,在关闭连接时还需要四次握手。 这部分占用了

什么是TCP/IP协议

Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。

TCP/IP详解卷一 ——tcp

即使端口处于2MSL状态,使用该选项,仍然能够在该端口建立连接。 服务器常会设置该选项,以防服务器重启。

如果在TIME_WAIT时间内,收到了对端发送来的数据报(不是重置报文段都行),那么该状态将被破坏,称为 时间等待错误 。原因是,当收到报文段以后,通常Seq是旧的,所以本端就会发送ACK,对端已经关闭或者是别的连接,就会发送RST,导致TIME_WAIT状态被破坏。 但是许多系统规定,TIME_WAIT状态是不对重置报文段做出反应。

两端同时发送FIN,两端又同时ACK。又同时进入TIME_WAIT

当处于TIME_WAIT的主机崩溃以后,重启,然后需要等待相当与一个MSL的时间才能建立新的连接。 这段时间成为静默时间。

当一段发现到达的报文段对相关连接(也就是进程,套接字对)而言不正确的时候,TCP就会发送一个重置报文段,从而导致对端的连接快速拆卸(也就是结束吧!)。

重置报文段的ACK位必须有,而且ACK的值必须在正确的窗口范围内,这样可以防止被攻击。

FIN正常关闭一条连接成为 有序释放 ,通常不会出现丢失数据的情况。 重置报文段终止一条连接成为 终止释放 。重置报文段在任何时候都可以发送,代替FIN来终止连接,且不学校对端ACK

终止报文段特性:

当该数值设置为0,那么也意味着,不会再连接终止之前为了确保本端缓存中的数据都发送出去而等待。

TCP在发送数据时会设置计时器,如果计时器超时认为受到数据确认信息,就会引发相应的超时,或给予计时器的重传操作,计时器超时时成为重传超时( RTO )。 TCP累计确认无法返回新的ACK,或者当ACK包含选择确认信息(SACK)时,表明出现书序数据报,空洞。就会引起 快速重传

若RTO短与RTT,那么没分都会重传,反之,整个网络利用率就会随之下降。

RTT样本 :TCP在收到数据后会返回确认信息ACK,该信息中携带一个字节的数据,测量传输该确认需要的时间,该测量结果成为RTT样本。 每个连接的RTT军独立计算。

如何根据RTT来设置RTO,有如下的方法

公式: SRTT=a*SRTT+(1-a)RTT ,a取 0.8-0.9 。 当TCP运行在RTT变化较大的网络中,无法取得期望的结果。

以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补

因为丢失ACK,或者实际RTT显著增长,可能出现伪超时的现象。 以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补

每个包可以选择各自的传送路径。某些高级路由器的采用多个并行数据链路,不同的处理演示也会导致包的离开顺序和到达顺序不匹配

包的失序会造成重传,很近单嘛,前面一个小号的Seq没到达,后面的先到达,那么ACK就会 重复

当TCP超时重发是,循序执行重新租宝,发送送一个更大的报文段提高性能,不超过MSS和MTU。 出现在每次传送的包较小,又丢包的情况

每个交互键通常会生成一个单独的数据报,也就是每个按键是独立传输的。 ssh调用一个shell,对客户端输入的字符做出辉县,因此,每个字符生成4个tcp数据段,客户端的交互按键输入,服务器对按键的ACK,服务器生成的辉县,客户端对回显的ACK。通常第二段和第三段合并,成为 捎带延时确认

PSH位设置,意味着发送端的缓存为空,也就是没什么可以发送了。

许多情况下,TCP并不是对每个到来的包都单独的ACK,利用累计ACK可以确认之前的ACK。累计确认可以允许TCP延时一段时间发送ACK,以便将ACK和相同方向上需要传输的数据结合发。这种捎带传输的方法常用于批量数据传输。 不能任意的延迟ACK,会造成重传。同时当失序发生时,必须立刻传送ACK。 系统可以设置,一般延时为200-600毫秒。

该算法要求,当TCP连接中有在传数据(那些已发送,但是未确认的数据)时,小的报文段就不能被发送,知道所有的数据都受到ACK。并且受到ACK后,TCP收集这些小的数据,整合到一个报文段中发送。 这种方法破事TCP遵循等停规程,只有收到所有传送数据的ACK后才能继续发送新数据。 该算法的不同之处在于他实现了自时钟控制,ACK返回越快,传输也越快。在相对高延迟的广域网中,更需要减小小报文的数目,该算法使得单位时间内发送的报文数目更少,RTT控制发包速率。 该算法减少小包数目的同时,也增大了传输时延,也就是总的发送时间。

窗口大小表明本端可用缓存大小,对端传送的数据不应该超过改大小。 也表明对端发送的数据的最大大小为TCP头部ACK号和窗口大小字段之和。 也就是Seq = ACK+MSS

TCP活动的两端都维护一个发送窗口结构和接受窗口结构。 TCP以 字节 为单位维护窗口结构。

每个TCP报文段都包含ACK号和窗口通告信息,TCP发送端可以据此调节窗口结构。 窗口左边界不能左移。 窗口的动作分为,关闭(收到ACK,左边右移),打开(MSS扩大,右边右移),收缩(MSS减小,右边左移) 当收到ACK号增大,而MSS不变时窗口向前 滑动 当当左边界与右边界相等时,成为 零窗口 ,此时发送端不能在发送新的数据,这种情况下,TCP开始探测对端窗口,伺机增大窗口。

当接受窗口值变为0是,可以邮箱的组织发送端继续发送,知道窗口大小回复为非0值。当接收端窗口得到可用空间是,就会给发送端传输一个窗口更新,告知器可以继续发送数据,这样的这样的窗口更新通常不包含数据,成为纯ACK,因此不能保证传输的可靠性。 如果一端的窗口更新ACK丢失,通信双方就会处于等待状态。为避免这种情况发生。发送端会采用一个持续计时器间歇性的查询接收端,看其窗口是否已经增长。 持续计时器会触发窗口探测的传输,强制要求对端返回ACK。 窗口探测包 包含一个字节数据,采用TCP传输,因此可以避免窗口更新丢失导致的死锁。因为包含一个字节数据Seq改变,接受端必须处理,如果接受就会ACK。窗口大小还是0,那么就会丢弃该报,没有响应。这时候发送端会持续的发送窗口探测包。

当接收端通告窗口较小,或者发送端发送的数据较小。这样数据报的有效携带率小,耗费网络资源多。 避免方法

以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补

TCP-IP协议详解(3) IP/ARP/RIP/BGP协议

网络层(network layer)是实现互联网的最重要的一层。正是在网络层面上,各个局域网根据IP协议相互连接,最终构成覆盖全球的Internet。更高层的协议,无论是TCP还是UDP,必须通过网络层的IP数据包(datagram)来传递信息。操作系统也会提供该层的socket,从而允许用户直接操作IP包。 IP数据包是符合IP协议的信息(也就是0/1序列),我们后面简称IP数据包为IP包。IP包分为头部(header)和数据(Data)两部分。数据部分是要传送的信息,头部是为了能够实现传输而附加的信息(这与以太网帧的头部功能相类似,如果对帧感到陌生,可参看 小喇叭 一文)。 IP协议可以分为IPv4和IPv6两种。IPv6是改进版本,用于在未来取代IPv4协议。出于本文的目的,我们可以暂时忽略两者的区别,只以IPv4为例。下面是IPv4的格式 IPv4包 我们按照4 bytes将整个序列折叠,以便更好的显示 与帧类似,IP包的头部也有多个区域。我们将注意力放在红色的发出地(source address)和目的地(destination address)。它们都是IP地址。IPv4的地址为4 bytes的长度(也就是32位)。我们通常将IPv4的地址分为四个十进制的数,每个数的范围为0-255,比如192.0.0.1就是一个IP地址。填写在IP包头部的是该地址的二进制形式。 IP地址是全球地址,它可以识别”社区”(局域网)和”房子”(主机)。这是通过将IP地址分类实现的。 IP class    From          To                Subnet Mask A           1.0.0.0       126.255.255.255    255.0.0.0 B           128.0.0.0     191.255.255.255    255.255.0.0 C           192.0.0.0     223.255.255.255    255.255.255.0 每个IP地址的32位分为前后两部分,第一部分用来区分局域网,第二个部分用来区分该局域网的主机。子网掩码(Subnet Mask)告诉我们这两部分的分界线,比如255.0.0.0(也就是8个1和24个0)表示前8位用于区分局域网,后24位用于区分主机。由于A、B、C分类是已经规定好的,所以当一个IP地址属于B类范围时,我们就知道它的前16位和后16位分别表示局域网和主机。 网络协议概览 中说,IP地址是分配给每个房子(计算机)的“邮编”。但这个说法并不精确。IP地址实际上识别的是网卡(NIC, Network Interface Card)。网卡是计算机的一个硬件,它在接收到网路信息之后,将信息交给计算机(处理器/内存)。当计算机需要发送信息的时候,也要通过网卡发送。一台计算机可以有不只一个网卡,比如笔记本就有一个以太网卡和一个WiFi网卡。计算机在接收或者发送信息的时候,要先决定想要通过哪个网卡。 NIC 路由器(router)实际上就是一台配备有多个网卡的专用电脑。它让网卡接入到不同的网络中,这样,就构成在 网络协议概览 中所说的邮局。比如下图中位于中间位置的路由器有两个网卡,地址分别为199.165.145.17和199.165.146.3。它们分别接入到两个网络:199.165.145和199.165.146。 IP包的传输要通过路由器的接力。每一个主机和路由中都存有一个路由表(routing table)。路由表根据目的地的IP地址,规定了等待发送的IP包所应该走的路线。就好像下图的路标,如果地址是“东京”,那么请转左;如果地址是“悉尼”,那么请向右。 A real world routing table 比如我们从主机145.17生成发送到146.21的IP包:铺开信纸,写好信的开头(剩下数据部分可以是TCP包,可以是UDP包,也可以是任意乱写的字,我们暂时不关心),注明目的地IP地址(199.165.146.21)和发出地IP地址(199.165.145.17)。主机145.17随后参照自己的routing table,里面有三行记录: 145.17 routing table (Genmask为子网掩码,Iface用于说明使用哪个网卡接口) Destination        Gateway             Genmask             Iface 199.165.145.0      0.0.0.0             255.255.255.0       eth0 0.0.0.0            199.165.145.17      0.0.0.0             eth0 这里有两行记录。 第一行表示,如果IP目的地是199.165.145.0这个网络的主机,那么只需要自己在eth0上的网卡直接传送(“本地社区”:直接送达),不需要前往router(Gateway 0.0.0.0 = “本地送信”)。 第二行表示所有不符合第一行的IP目的地,都应该送往Gateway 199.165.145.17,也就是中间router接入在eth0的网卡IP地址(邮局在eth0的分支)。 我们的IP包目的地为199.165.146.21,不符合第一行,所以按照第二行,发送到中间的router。主机145.17会将IP包放入帧的payload,并在帧的头部写上199.165.145.17对应的MAC地址,这样,就可以按照 以太网与wifi协议 中的方法在局域网中传送了。 中间的router在收到IP包之后(实际上是收到以太协议的帧,然后从帧中的payload读取IP包),提取目的地IP地址,然后对照自己的routing table: Destination        Gateway             Genmask             Iface 199.165.145.0      0.0.0.0             255.255.255.0       eth0 199.165.146.0      0.0.0.0             255.255.255.0       eth1 0.0.0.0            199.165.146.8       0.0.0.0             eth1 从前两行我们看到,由于router横跨eth0和eth1两个网络,它可以直接通过eth0和eth1上的网卡直接传送IP包。 第三行表示,如果是前面两行之外的IP地址,则需要通过eth1,送往199.165.146.8(右边的router)。 我们的目的地符合第二行,所以将IP放入一个新的帧中, 在帧的头部写上199.165.146.21的MAC地址,直接发往主机146.21。 (在Linux下,可以使用$route -n来查看routing table) IP包可以进一步接力,到达更远的主机。IP包从主机出发,根据沿途路由器的routing table指导,在router间接力。IP包最终到达某个router,这个router与目标主机位于一个局域网中,可以直接建立连接层的通信。最后,IP包被送到目标主机。这样一个过程叫做routing(我们就叫IP包接力好了,路由这个词实在是混合了太多的意思)。 整个过程中,IP包不断被主机和路由封装入帧(信封)并拆开,然后借助连接层,在局域网的各个NIC之间传送帧。整个过程中,我们的IP包的内容保持完整,没有发生变化。最终的效果是一个IP包从一个主机传送到另一个主机。利用IP包,我们不需要去操心底层(比如连接层)发生了什么。 在上面的过程中,我们实际上假设了,每一台主机和路由都能了解局域网内的IP地址和MAC地址的对应关系,这是实现IP包封装(encapsulation)到帧的基本条件。IP地址与MAC地址的对应是通过ARP协议传播到局域网的每个主机和路由。每一台主机或路由中都有一个ARP cache,用以存储局域网内IP地址和MAC地址如何对应。 ARP协议(ARP介于连接层和网络层之间,ARP包需要包裹在一个帧中)的工作方式如下:主机会发出一个ARP包,该ARP包中包含有自己的IP地址和MAC地址。通过ARP包,主机以广播的形式询问局域网上所有的主机和路由:我是IP地址xxxx,我的MAC地址是xxxx,有人知道199.165.146.4的MAC地址吗?拥有该IP地址的主机会回复发出请求的主机:哦,我知道,这个IP地址属于我的一个NIC,它的MAC地址是xxxxxx。由于发送ARP请求的主机采取的是广播形式,并附带有自己的IP地址和MAC地址,其他的主机和路由会同时检查自己的ARP cache,如果不符合,则更新自己的ARP cache。 这样,经过几次ARP请求之后,ARP cache会达到稳定。如果局域网上设备发生变动,ARP重复上面过程。 (在Linux下,可以使用$arp命令来查看ARP的过程。ARP协议只用于IPv4。IPv6使用Neighbor Discovery Protocol来替代ARP的功能。) 我们还有另一个假设,就是每个主机和路由上都已经有了合理的routing table。这个routint table描述了网络的拓扑(topology)结构。如果你了解自己的网络连接,可以手写自己主机的routing table。但是,一个路由器可能有多个出口,所以routing table可能会很长。更重要的是,周围连接的其他路由器可能发生变动(比如新增路由器或者路由器坏掉),我们就需要routing table能及时将交通导向其他的出口。我们需要一种更加智能的探测周围的网络拓扑结构,并自动生成routing table。 我们以北京地铁为例子。如果从机场前往朝阳门,那么可以采取2号航站楼-》》三元桥-》》东直门-》》朝阳门。2号航站楼和朝阳门分别是出发和目的主机。而三元桥和东直门为中间的两个router。如果三元桥-》》东直门段因为维修停运,我们需要更改三元桥的routing table,从而给前往朝阳门的乘客(IP包)指示:请走如下路线三元桥-》》芍药居。然后依照芍药居的routing table前往朝阳门(芍药居-》》东直门-》》朝阳门)。 一种用来生成routing table的协议是RIP(Routing Information Protocol)。它通过距离来决定routing table,所以属于distance-vector protocol。对于RIP来说,所谓的距离是从出发地到目的地途径的路由器数目(hop number)。比如上面从机场到朝阳门,按照2号航站楼-》》三元桥-》》东直门-》》朝阳门路线,途径两个路由器,距离为2。我们最初可以手动生成三元桥的routing table。随后,根据RIP协议,三元桥向周围的路由器和主机广播自己前往各个IP的距离(比如到机场=0,团结湖=0,国贸=1,望京西=1,建国门=2)。收到RIP包的路由器和主机根据RIP包和自己到发送RIP包的主机的距离,算出自己前往各个IP的距离。东直门与三元桥的距离为1。东直门收到三元桥的RIP包(到机场的距离为0),那么东直门途径三元桥前往机场的距离为1+0=1。如果东直门自己的RIP记录都比这个远(比如东直门-》》芍药居-》》三元桥-》》机场 = 2)。那么东直门更改自己的routing table:前往机场的交通都发往三元桥而不是芍药居。如果东直门自身的RIP记录并不差,那么东直门保持routing table不变。上述过程在各个点不断重复RIP广播/计算距离/更新routing table的过程,最终所有的主机和路由器都能生成最合理的路径(merge)。 (RIP的基本逻辑是:如果A距离B为6,而我距离A为1,那么我途径A到B的距离为7) RIP出于技术上的原因(looping hops),认为距离超过15的IP不可到达。所以RIP更多用于互联网的一部分(比如整个中国电信的网络)。这样一个互联网的部分往往属于同一个ISP或者有同一个管理机构,所以叫做自治系统(AS,autonomous system)。自治系统内部的主机和路由根据通向外部的边界路由器来和其它的自治系统通信。各个边界路由器之间通过BGP(Border Gateway Protocol)来生成自己前往其它AS的routing table,而自治系统内部则参照边界路由器,使用RIP来决定routing table。BGP的基本工作过程与RIP类似,但在考虑距离的同时,也权衡比如政策、连接性能等其他因素,再决定交通的走向(routing table)。 我们一开始讲述了IP包根据routing table进行接力的过程。为了顺利实现接力,我们又进一步深入到ARP和RIP/BGP。这三个协议都协助了IP传输。ARP让每台电脑和路由器知道自己局域网内IP地址和MAC地址的对应关系,从而顺利实现IP包到帧的封装。RIP协议可以生成自治系统内部合理的routing table。BGP协议可以生成自治系统外部的routing table。 在整个过程中,我们都将注意力放在了IP包大的传输过程中,而故意忽略一些细节。 而上面的IP接力过程适用于IPv6。【TCP/IP详解】系列教程 互联网协议入门 1 互联网协议入门 2 TCP-IP协议详解(1)网络协议概观 TCP-IP协议详解(2) 以太网与WiFi协议 TCP-IP协议详解(3) IP/ARP/RIP/BGP协议 TCP-IP协议详解(4)IPv4与IPv6地址 TCP-IP协议详解(5)IP协议详解 TCP-IP协议详解(6) ICMP协议 TCP-IP协议详解(7) UDP协议 TCP-IP协议详解(8) TCP协议与流通信 TCP-IP协议详解(9) TCP连接 TCP-IP协议详解(10) TCP滑窗管理 TCP-IP协议详解(11) TCP重传 TCP-IP协议详解(12) TCP堵塞控制 TCP-IP协议详解(13) DNS协议 TCP-IP协议详解(14) CIDR与NAT TCP-IP协议详解(15) HTTP协议概览 图解TCP-IP协议

以上就是我们为大家找到的有关“tcp ip(TCP/IP协议是什么)”的所有内容了,希望可以帮助到你。如果对我们网站的其他内容感兴趣请持续关注本站。

tcp ip(TCP/IP协议是什么)

本文编辑:admin
tcp ip

更多文章:


努比亚v18充电多少w(荣耀7x、荣耀9青春版跟努比亚V18比怎么样)

努比亚v18充电多少w(荣耀7x、荣耀9青春版跟努比亚V18比怎么样)

本篇文章给大家谈谈努比亚v18充电多少w,以及荣耀7x、荣耀9青春版跟努比亚V18比怎么样对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录荣

2024年8月15日 05:25

联想服务器做raid步骤(联想Think Server TS560怎么做RAID阵列)

联想服务器做raid步骤(联想Think Server TS560怎么做RAID阵列)

本文目录联想Think Server TS560怎么做RAID阵列联想服务器如何在BIOS中配RAID联想Think Server TS560怎么做RAID阵列1、首先开机按F10进入BIOS,选择Advanced-System Optio

2023年7月29日 17:40

nova5z上市价格和时间(在nova 6升级5G双模前夕推出nova 5z,华为要清掉麒麟810库存吗)

nova5z上市价格和时间(在nova 6升级5G双模前夕推出nova 5z,华为要清掉麒麟810库存吗)

本文目录在nova 6升级5G双模前夕推出nova 5z,华为要清掉麒麟810库存吗华为nova5z和荣耀20s有什么区别realme x2 和华为nova5z,6+128版本的哪个好双十一2000元内手机,麒麟810机子选哪个荣耀20s、

2024年5月16日 07:50

女航天员王亚平简介(王亚平会不会成为第一位进入中国空间站的女性航天员为什么)

女航天员王亚平简介(王亚平会不会成为第一位进入中国空间站的女性航天员为什么)

本文目录王亚平会不会成为第一位进入中国空间站的女性航天员为什么中国空间站首位女航天员王亚平,究竟有什么背景女航空员王亚平的故事王亚平被称为什么王亚平简介 个人资料中国空间站首位女航天员王亚平的简历王亚平会不会成为第一位进入中国空间站的女性航

2024年1月21日 05:20

iphone12法国版标配有线耳机(为何法国苹果用户配备耳机,是因为地域歧视吗)

iphone12法国版标配有线耳机(为何法国苹果用户配备耳机,是因为地域歧视吗)

大家好,今天小编来为大家解答以下的问题,关于iphone12法国版标配有线耳机,为何法国苹果用户配备耳机,是因为地域歧视吗这个很多人还不知道,现在让我们一起来看看吧!本文目录为何法国苹果用户配备耳机,是因为地域歧视吗苹果12配什么耳机iph

2024年9月20日 12:45

惠普星14参数(联想小新和惠普星系列哪个好)

惠普星14参数(联想小新和惠普星系列哪个好)

这篇文章给大家聊聊关于惠普星14参数,以及联想小新和惠普星系列哪个好对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录联想小新和惠普星系列哪个好惠普星14的logo多少厘米联想小新和惠普星系列哪个好一、惠普星14和联想小新air

2024年6月28日 17:00

神舟电脑客服售后电话(急求 神舟笔记本电脑 廊坊售后服务的联系电话及地址)

神舟电脑客服售后电话(急求 神舟笔记本电脑 廊坊售后服务的联系电话及地址)

本文目录急求 神舟笔记本电脑 廊坊售后服务的联系电话及地址神州联保的售后电话急求 神舟笔记本电脑 廊坊售后服务的联系电话及地址地址:廊坊市新世纪步行街第二大街顶好电子城1A-29B,公司:廊坊市新世纪步行街佳鑫电子销售中心电话:0316-7

2024年7月21日 08:44

金立m7评测(金立手机质量怎么样好用吗)

金立m7评测(金立手机质量怎么样好用吗)

本文目录金立手机质量怎么样好用吗金立m7怎么样金立M7体验,这款全面屏手机到底有哪些亮点金立手机质量怎么样好用吗金立手机质量还是挺好的,也好用。以金立M7为例,金立M7外观时尚大气,特别适合商务人士。其背部采用独树一帜的太阳纹工艺,以指纹识

2024年7月18日 20:06

htc u11eyes(hTC U 11eyes手机cpu虚焊的表现)

htc u11eyes(hTC U 11eyes手机cpu虚焊的表现)

本文目录hTC U 11eyes手机cpu虚焊的表现htc u11eyes支持esim卡吗hTC U 11eyes手机cpu虚焊的表现当电板受力略微变形就使CPU内部原来与电板接触不甚紧密的接点断开,手机就自动断电了。还有长时间工作CPU发

2024年4月30日 22:50

z5i手机vivo参数(vivoz5i是什么屏)

z5i手机vivo参数(vivoz5i是什么屏)

本文目录vivoz5i是什么屏vivoz5i参数怎么样VIVO的Z5i这款手机怎么样用机体验感如何Vivo z5x和z5i的区别z5ivivo参数vivoz5i什么时候上市的vivoz5i是什么屏Z5i屏幕参数:尺寸:6.53英寸分辨率:2

2023年11月28日 10:30

联想电脑怎么重装系统u盘(联想笔记本如何使用u盘重装系统)

联想电脑怎么重装系统u盘(联想笔记本如何使用u盘重装系统)

本文目录联想笔记本如何使用u盘重装系统联想电脑怎么用u盘装系统联想电脑怎么u盘重装系统步骤联想笔记本用u盘装系统按哪个键联想笔记本怎么用u盘装系统用U盘给电脑重装系统要按哪个键联想笔记本如何使用u盘重装系统   联想电脑是一款适合多种

2024年1月30日 06:55

三星相机nv10(我的数码相机 三星蓝调NV10把数据线插到电脑上所有照片都不显示)

三星相机nv10(我的数码相机 三星蓝调NV10把数据线插到电脑上所有照片都不显示)

本文目录我的数码相机 三星蓝调NV10把数据线插到电脑上所有照片都不显示三星数码相机NV10里AUTO键与P键三星nv10相机内存卡最大支持多少三星蓝调NV10相机,照出来的相片总是很模糊,怎么解决啊!~~谢谢三星 数码相机 NV10的性能

2023年5月5日 23:45

无线usb网卡(USB无线网卡有什么用)

无线usb网卡(USB无线网卡有什么用)

本篇文章给大家谈谈无线usb网卡,以及USB无线网卡有什么用对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录USB无线网卡有什么用1300m

2024年7月27日 20:10

carlife官方下载(如何使用百度CarLife手机智能互联系统)

carlife官方下载(如何使用百度CarLife手机智能互联系统)

本文目录如何使用百度CarLife手机智能互联系统车上怎么下载百度carlife请问 carlife机车端 在哪里下载 如何安装到车上如何在车上安装carlife如何使用百度CarLife手机智能互联系统第一步:使用手机下载百度CarLif

2024年5月28日 15:07

htc新渴望vc t328t(htc 新渴望vt t328t适合用移动什么卡)

htc新渴望vc t328t(htc 新渴望vt t328t适合用移动什么卡)

本文目录htc 新渴望vt t328t适合用移动什么卡HTC T328t(新渴望VT)用联通卡怎么样HTC T328t(新渴望VT)刚上市的价格多少这款手机怎么样呢求用过的朋友分享一下经验htc 新渴望vt t328t适合用移动什么卡楼主你

2023年12月15日 08:00

下载最新天猫精灵app登录(我想问一下天猫精灵怎么设置)

下载最新天猫精灵app登录(我想问一下天猫精灵怎么设置)

本文目录我想问一下天猫精灵怎么设置天猫精灵爆炸模式是什么意思我想问一下天猫精灵怎么设置在我们的手机中下载天猫精灵,安装完成之后,登录账号之后,进去我的界面,点击添加设备,然后选择自己购买的天猫精灵类型,输入wifi名称和密码,进行配网模式,

2024年6月6日 06:35

近期文章

本站热文

电脑包尺寸对照表(电脑包要多大)
2024-07-23 11:15:58 浏览:3883
e10000(皖E10000是什么车)
2024-07-17 11:22:25 浏览:3506
ati radeon hd 5650(电脑的显卡是ATI Mobility Radeon HD 5650 (MADION PRO) ( 1 GB ) 这个显卡)
2024-07-07 05:01:37 浏览:3100
华为mate20pro版本区别(mate20pro有必要买ud版吗)
2024-07-24 08:26:42 浏览:2630
ipad买蜂窝版还是wifi版(ipad air 5买蜂窝好不好)
2024-07-17 14:35:19 浏览:2237
vivo y3配置参数(vivoy3参数是什么)
2024-07-16 07:07:06 浏览:2071
标签列表

热门搜索