精华内容
下载资源
问答
  • TCP-IP详解卷一:协议/TCP-IP详解卷一:协议/TCP-IP详解卷一:协议/TCP-IP详解卷一:协议TCP-IP详解卷一:协议/TCP-IP详解卷一:协议/TCP-IP详解卷一:协议/TCP-IP详解卷一:协议/TCP-IP详解卷一:协议TCP-IP详解...
  • TCP-IP详解卷3:TCP事务协议TCP-IP详解卷3:TCP事务协议TCP-IP详解卷3:TCP事务协议TCP-IP详解卷3:TCP事务协议TCP-IP详解卷3:TCP事务协议TCP-IP详解卷3:TCP事务协议TCP-IP详解卷3:TCP事务协议TCP-IP详解卷3:TCP...
  • TCP-IP Socket网络编程TCP-IP Socket网络编程TCP-IP Socket网络编程TCP-IP Socket网络编程TCP-IP Socket网络编程TCP-IP Socket网络编程TCP-IP Socket网络编程
  • TCP-IP详解

    2017-12-04 09:04:44
    TCP-IP详解 TCP IP TCP-IP详解 TCP IP TCP-IP详解 TCP IP
  • TCP-IP协议

    2011-10-31 22:55:28
    TCP-IP协议;TCP-IP协议;TCP-IP协议;TCP-IP协议;TCP-IP协议;TCP-IP协议;TCP-IP协议
  • TCP-IP详解卷1(TCP/IP理论)

    热门讨论 2009-10-30 16:21:07
    TCP-IP详解卷1(TCP/IP理论) TCP-IP详解卷1(TCP/IP理论) TCP-IP详解卷1(TCP/IP理论) TCP-IP详解卷1(TCP/IP理论) TCP-IP详解卷1(TCP/IP理论) TCP-IP详解卷1(TCP/IP理论)
  • TCP-IP技术大全

    2008-10-08 10:53:28
    TCP-IP技术大全TCP-IP技术大全TCP-IP技术大全TCP-IP技术大全TCP-IP技术大全
  • TCP-IP协议详解.ppt

    热门讨论 2011-04-20 22:45:50
    TCP-IP协议详解TCP-IP协议详解TCP-IP协议详解TCP-IP协议详解TCP-IP协议详解TCP-IP协议详解TCP-IP协议详解TCP-IP协议详解
  • TCP-IP详解卷1 协议 高清 pdfTCP-IP详解卷1 协议 高清 pdfTCP-IP详解卷1 协议 高清 pdfTCP-IP详解卷1 协议 高清 pdfTCP-IP详解卷1 协议 高清 pdfTCP-IP详解卷1 协议 高清 pdf
  • 软件介绍: TCP-IP详解合集中文版内容非常翔实完整,已经打包为单文件独立版本。 内容如下:TCP-IP详解卷1:协议TCP-IP详解卷2:实现TCP-IP详解卷3:TCP事务协议,HTTP,NNTP和UNIX域协议
  • TCP-IP详解卷3

    2008-09-29 13:23:51
    TCP-IP详解卷3 pdf TCP-IP详解卷3 TCP-IP详解卷3 TCP-IP详解卷3 TCP-IP详解卷3 TCP-IP详解卷3
  • TCP-IP协议详解.pdf

    热门讨论 2009-05-23 10:30:50
    TCP-IP协议详解.pdf TCP-IP协议详解.pdf TCP-IP协议详解.pdf TCP-IP协议详解.pdf
  • JAVA TCP-IP应用开发详解JAVA TCP-IP应用开发详解JAVA TCP-IP应用开发详解JAVA TCP-IP应用开发详解JAVA TCP-IP应用开发详解JAVA TCP-IP应用开发详解
  • tcp-ip协议动画演示

    2011-12-22 14:11:18
    tcp-ip协议动画演示
  • TCP-IP Illustrated(1、2、3卷)中文版

    热门讨论 2013-10-29 00:04:07
    完整而详细的TCP/IP协议讲解. Stevens写的巨著. 共分三卷: TCP-IP详解卷1:协议.pdf TCP-IP详解卷2:实现.pdf TCP-IP详解卷3:TCP事务协议,HTTP,NNTP和UNIX域协议.pdf
  • Linux内核源码剖析 TCP-IP 实现(上下册)
  • TCP-IP详解卷一:协议》pdf版,学习计算机网络的优先书籍。
  • [TCP-IP详解卷一:协议][英文版].pdf

    热门讨论 2014-08-19 00:17:21
    [TCP-IP详解卷一:协议][英文版],是[TCP-IP详解卷一:协议]一书的英文版本。
  • The TCP-IP Guide.pdf

    热门讨论 2009-06-26 22:21:35
    The TCP-IP Guide.pdf
  • tcp-ip详解 三卷合集 中英文 PDF格式

    热门讨论 2015-05-08 12:13:19
    tcp-ip详解 三卷合集 中英文 PDF格式,网上收集,供大家方便下载。希望对你有帮助。 第三卷英文版没有标签,目前我没有找到有标签,如若你找到,请通知一下,谢谢。
  • 嵌入式Internet+TCPIP基础、实现及应用:TCP-IP.part2.rar 【共有四部分】,感谢wangzd87 的上传 (http://download.csdn.net/detail/wangzd87/2901518)。
  • TCP-IP详解,卷1》习题解答

    热门讨论 2010-09-03 14:08:42
    TCP-IP详解,卷1》部分习题解答。可以下来参考。
  • TCP-IP详解全三卷(高清带目录).pdf

    热门讨论 2013-10-06 18:25:49
    计算机网络经典书籍《TCP-IP详解全三卷(高清带目录).pdf》,值得推荐!
  • TCP-IP详解:SACK选项(Selective Acknowledgment)

    万次阅读 多人点赞 2016-09-11 18:16:59
    参考教材:TCP-IP Guide 引入理由 在文章TCP-IP详解:超时重传机制中,有介绍到快速重传和超时重传都会面临到一个重传什么包的问题,因为发送端也不清楚丢失包后面传送的数据是否有成功的送到。主要原因还是对于...

    参考教材:TCP-IP Guide


    引入理由

    在文章TCP-IP详解:超时重传机制中,有介绍到快速重传和超时重传都会面临到一个重传什么包的问题,因为发送端也不清楚丢失包后面传送的数据是否有成功的送到。主要原因还是对于TCP的确认系统,不是特别的好处理这种不连续确认的状况了,只有低于ACK number的片段都被收到才有进行ACK,out-of-order的片段只能是等待,同时,这个时间窗口是无法向右移动的。

    举个例子:

    1. 服务发送4个片段给客户端,seg1(seq=1,len=80),seg2(seq=81,len=120), seg3(seq=201,len=160),seg4(seq=361,len=140)

    2. 服务器收到seg1和seg2的ACK = 201,所以此时seg1 seg2变成发送并已经确认范畴的数据包,被移除滑动窗口,此时服务器又可以多发80+120 byte数据

    3. 假设seg3由于某些原因丢失,这个时候服务器仍然可以像客户端发送数据,但是服务器会等待seg3的ACK,否则窗口无法滑动,卡主了

    4. seg3丢失了,即使后面的seg4收到了,客户端也无法告知服务器已经收到了seg4,试想一下,如果窗口也够大,服务器可以继续持续发送更多的片段,那么这些片段被客户端接收,只能存放到队列中,无法进行确认

    正式因为后续OUT-OF-ORDER的报文段的发送状况也不清楚,所以Server也不是特别清楚要如何去处理这种状况,不过一般来说只能有2中状况:

    1. 只重传超时的数据包,这种方法是最常想到的,比较实用与后面的数据包都能够正常接收的状况,只重传超时的数据包,但是如果比较坏的情况下,丢失了很多封包呢?  那就需要一个一个的等待超时了,很浪费时间。

    2. 重传这个片段以及之后的所有包,这种方法在最坏的状况下,看起来效率还是挺高的,但是如果只有一个包丢失,就去重传后面所有接受到的包,流量浪费也是很严重的。

    总之对于上面阐述的问题,没有想到一个好的思路来解。但是RFC2018提供了一个SACK的方法,有效的解决这个问题


    SACK(Selective Acknowledgment)

    SACK是一个TCP的选项,来允许TCP单独确认非连续的片段,用于告知真正丢失的包,只重传丢失的片段。要使用SACK,2个设备必须同时支持SACK才可以,建立连接的时候需要使用SACK Permitted的option,如果允许,后续的传输过程中TCP segment中的可以携带SACK option,这个option内容包含一系列的非连续的没有确认的数据的seq range,这些

    SYN包中SACK Permitted 选项,双方都支持才对

    SACK option格式

    Kind 5  Length  剩下的都是没有确认的segment的range了 比如说segment 501-600 没有被确认,那么Left Edge of 1st Block = 501,Right Edge of 1st Block = 600,TCP的选项不能超过40个字节,所以边界不能超过4组


    可以看下实际的tcpdump抓包中的SACK option,如下图,使用tcp.option.sack进行过滤,可以看到这个SACK option只有一个片段,接收并没有进行确认,范围是18761~20101


    再来将上面的例子

    客户端收到seg4的时候,发送seg3的ACK 会产生一个SACK的option(361~500),Server收到这个ACK后,就知道seg3丢失了,但是seg4已经收到了但是并没有确认,所以就只会重传seg3


    SACK的产生,RFC2018

    SACK通常是由数据接收方产生,如果在connection建立的时候,SYN包中有SACK-Permitted 的选项为true,同时自身也支持SACK,那么可以在接收异常的时候,产生SACK option. 如果要发送,SACK中需要携带接收队列中所有没有被确认的数据段信息。

    如果接收方选择发送带有SACK的ACK,需要遵循如下规则:

    1. 第一个block需要指出是哪一个segment触发SACK option ,我认为就是谁乱序了,才会导致SACK

    2. 尽可能多的把所有的block填满

    3. SACK 要报告最近接收的不连续的数据块

    接收端的行为:

    1. 数据没有被确认前,都会保持在滑动窗口内

    2. 每一个数据包都有一个SACKed的标志,对于已经标示的segment,重新发送的时候会忽略

    3. 如果SACK丢失,超时重传之后,重置所有数据包SACKed 标志


    D-SACK RFC2883

    D-SACK主要是使用了SACK来告诉发送方有哪些数据被重复接收了,如果是D-SACK,那么SACK option的第一个block代表被重复发送的序列片段

    需要注意的点:

    1. D-SACK仅仅是接收端报告一个重复的连续的片段

    2. 每个重复的连续片段只能在一个block中

    3.  重复片段的序列号

    4. 第二个block指的是data没有被确认的

    分析一下RFC2883的例子:

    1. Reproting a Duplicate Segment

    如下图: 发送端发送seg1和seg2,但是接收端的ACK都被drop掉了,超时重传seg1,然后接收端就发了一个D-SACK,告诉发送端3000~3499重复接收,需要接收4000的。


    2. 报告OUT-OF-ORDER段和重传段

    从图中可以看出seg4 out-of-order会触发SACK,说明已经收到但是没有确认的数据,但是这个丢掉了,通过发送方又重传了seg1,然后接收方此时会生成D-SACK,block1中存放了dup的segment,block2中存放了收到但没有确认的segment


    还有比较多的例子,详细的可以参考 RFC2883

    总起来说D-SACK还是带了诸多的好处,能否让发送方了解是ACK丢了还是发送的数据包丢了,重复发送就说明是ACK丢了呗,同时也能够掌握网络上的一些事情,比如out-of-order,超时重传等,这样了解了网络,才能更好的做流控。



    展开全文
  • 图解TCP-IP协议

    千次阅读 2014-09-19 09:33:04
    本文通过两个图来梳理TCP-IP协议相关知识。TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道。如图1所示,给出了TCP通信过程的示意图。 图1 TCP 三次握手四次挥手 图1主要包括三部分...

    本文通过两个图来梳理TCP-IP协议相关知识。TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道。如图1所示,给出了TCP通信过程的示意图。

    图1 TCP 三次握手四次挥手

    图1主要包括三部分:建立连接、传输数据、断开连接。

    1)建立TCP连接很简单,通过三次握手便可建立连接。

    2)建立好连接后,开始传输数据。TCP数据传输牵涉到的概念很多:超时重传、快速重传、流量控制、拥塞控制等等。

    3)断开连接的过程也很简单,通过四次握手完成断开连接的过程。

    三次握手建立连接:

    第一次握手:客户端发送syn包(seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认;

    第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;

    第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

     握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。

    传输数据过程:

    a.超时重传

    超时重传机制用来保证TCP传输的可靠性。每次发送数据包时,发送的数据报都有seq号,接收端收到数据后,会回复ack进行确认,表示某一seq号数据已经收到。发送方在发送了某个seq包后,等待一段时间,如果没有收到对应的ack回复,就会认为报文丢失,会重传这个数据包。

    b.快速重传

    接受数据一方发现有数据包丢掉了。就会发送ack报文告诉发送端重传丢失的报文。如果发送端连续收到标号相同的ack包,则会触发客户端的快速重传。比较超时重传和快速重传,可以发现超时重传是发送端在傻等超时,然后触发重传;而快速重传则是接收端主动告诉发送端数据没收到,然后触发发送端重传。

    c.流量控制

    这里主要说TCP滑动窗流量控制。TCP头里有一个字段叫Window,又叫Advertised-Window,这个字段是接收端告诉发送端自己还有多少缓冲区可以接收数据。于是发送端就可以根据这个接收端的处理能力来发送数据,而不会导致接收端处理不过来。 滑动窗可以是提高TCP传输效率的一种机制。

    d.拥塞控制

    滑动窗用来做流量控制。流量控制只关注发送端和接受端自身的状况,而没有考虑整个网络的通信情况。拥塞控制,则是基于整个网络来考虑的。考虑一下这样的场景:某一时刻网络上的延时突然增加,那么,TCP对这个事做出的应对只有重传数据,但是,重传会导致网络的负担更重,于是会导致更大的延迟以及更多的丢包,于是,这个情况就会进入恶性循环被不断地放大。试想一下,如果一个网络内有成千上万的TCP连接都这么行事,那么马上就会形成“网络风暴”,TCP这个协议就会拖垮整个网络。为此,TCP引入了拥塞控制策略。拥塞策略算法主要包括:慢启动,拥塞避免,拥塞发生,快速恢复。

    四次握手断开连接:

    第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但此时主动关闭方还可以接受数据。

    第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
    第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
    第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

     

    图2给出了TCP通信过程中的状态转移图,理解此图是我们理解TCP-IP协议的关键。

    图2  TCP状态转移图

    状态图详细解读:

    1.CLOSED:起始点,在超时或者连接关闭时候进入此状态。

    2.LISTEN:服务端在等待连接过来时候的状态,服务端为此要调用socket,bind,listen函数,就能进入此状态。此称为应用程序被动打开(等待客户端来连接)。

    3.SYN_SENT:客户端发起连接,发送SYN给服务器端。如果服务器端不能连接,则直接进入CLOSED状态。

    4.SYN_RCVD:跟3对应,服务器端接受客户端的SYN请求,服务器端由LISTEN状态进入SYN_RCVD状态。同时服务器端要回应一个ACK,同时发送一个SYN给客户端;另外一种情况,客户端在发起SYN的同时接收到服务器端得SYN请求,客户端就会由SYN_SENT到SYN_RCVD状态。

    5.ESTABLISHED:服务器端和客户端在完成3次握手进入状态,说明已经可以开始传输数据了。

    以上是建立连接时服务器端和客户端产生的状态转移说明。相对来说比较简单明了,如果你对三次握手比较熟悉,建立连接时的状态转移还是很容易理解。

    下面,我们来看看连接关闭时候的状态转移说明,关闭需要进行4次双方的交互,还包括要处理一些善后工作(TIME_WAIT状态),注意,这里主动关闭的一方或被动关闭的一方不是指特指服务器端或者客户端,是相对于谁先发起关闭请求来说的:

    6.FIN_WAIT_1:主动关闭的一方,由状态5进入此状态。具体的动作是发送FIN给对方。

    7.FIN_WAIT_2:主动关闭的一方,接收到对方的FIN-ACK(即fin包的回应包),进入此状态。

    8.CLOSE_WAIT:接收到FIN以后,被动关闭的一方进入此状态。具体动作是接收到FIN,同时发送ACK。(之所以叫close_wait可以理解为被动关闭方此时正在等待上层应用发出关闭连接指令)

    9.LAST_ACK:被动关闭的一方,发起关闭请求,由状态8进入此状态。具体动作是发送FIN给对方,同时在接收到ACK时进入CLOSED状态。

    10.CLOSING:两边同时发起关闭请求时,会由FIN_WAIT_1进入此状态。具体动作是接收到FIN请求,同时响应一个ACK。

    11.TIME_WAIT:最纠结的状态来了。从状态图上可以看出,有3个状态可以转化成它,我们一一来分析:

          a.由FIN_WAIT_2进入此状态:在双方不同时发起FIN的情况下,主动关闭的一方在完成自身发起的关闭请求后,接收到被动关闭一方的FIN后进入的状态。

          b.由CLOSING状态进入:双方同时发起关闭,都做了发起FIN的请求,同时接收到了FIN并做了ACK的情况下,由CLOSING状态进入。

          c.由FIN_WAIT_1状态进入:同时接受到FIN(对方发起),ACK(本身发起的FIN回应),与b的区别在于本身发起的FIN回应的ACK先于对方的FIN请求到达,而b是FIN先到达。这种情况概率最小。

    关闭的4次连接最难理解的状态是TIME_WAIT,存在TIME_WAIT的2个理由:

    1.可靠地实现TCP全双工连接的终止。

    2.允许老的重复分节在网络中消逝。

    附:

    慢热启动算法 – Slow Start

    首先,我们来看一下TCP的慢热启动。慢启动的意思是,刚刚加入网络的连接,一点一点地提速,不要一上来就像那些特权车一样霸道地把路占满。新同学上高速还是要慢一点,不要把已经在高速上的秩序给搞乱了。

    慢启动的算法如下(cwnd全称Congestion Window):

    1)连接建好的开始先初始化cwnd = 1,表明可以传一个MSS大小的数据。

    2)每当收到一个ACK,cwnd++; 呈线性上升

    3)每当过了一个RTT,cwnd = cwnd*2; 呈指数让升

    4)还有一个ssthresh(slow start threshold),是一个上限,当cwnd >= ssthresh时,就会进入“拥塞避免算法”(后面会说这个算法)

    所以,我们可以看到,如果网速很快的话,ACK也会返回得快,RTT也会短,那么,这个慢启动就一点也不慢。

    拥塞避免算法 – Congestion Avoidance

    前面说过,还有一个ssthresh(slow start threshold),是一个上限,当cwnd >= ssthresh时,就会进入“拥塞避免算法”。一般来说ssthresh的值是65535,单位是字节,当cwnd达到这个值时后,算法如下:

    1)收到一个ACK时,cwnd = cwnd + 1/cwnd

    2)当每过一个RTT时,cwnd = cwnd + 1

    这样就可以避免增长过快导致网络拥塞,慢慢的增加调整到网络的最佳值。很明显,是一个线性上升的算法。

    拥塞状态时的算法

    前面我们说过,当丢包的时候,会有两种情况:

    1)等到RTO超时,重传数据包。TCP认为这种情况太糟糕,反应也很强烈。

      • sshthresh =  cwnd /2
      • cwnd 重置为 1
      • 进入慢启动过程

    2)Fast Retransmit算法,也就是在收到3个duplicate ACK时就开启重传,而不用等到RTO超时。

      • TCP Tahoe的实现和RTO超时一样。
      • TCP Reno的实现是:
        • cwnd = cwnd /2
        • sshthresh = cwnd
        • 进入快速恢复算法——Fast Recovery

    上面我们可以看到RTO超时后,sshthresh会变成cwnd的一半,这意味着,如果cwnd<=sshthresh时出现的丢包,那么TCP的sshthresh就会减了一半,然后等cwnd又很快地以指数级增涨爬到这个地方时,就会成慢慢的线性增涨。我们可以看到,TCP是怎么通过这种强烈地震荡快速而小心得找到网站流量的平衡点的。

    快速恢复算法 – Fast Recovery

    TCP Reno

    这个算法定义在RFC5681。快速重传和快速恢复算法一般同时使用。快速恢复算法是认为,你还有3个Duplicated Acks说明网络也不那么糟糕,所以没有必要像RTO超时那么强烈。 注意,正如前面所说,进入Fast Recovery之前,cwnd 和 sshthresh已被更新:

    • cwnd = cwnd /2
    • sshthresh = cwnd

    然后,真正的Fast Recovery算法如下:

    • cwnd = sshthresh  + 3 * MSS (3的意思是确认有3个数据包被收到了)
    • 重传Duplicated ACKs指定的数据包
    • 如果再收到 duplicated Acks,那么cwnd = cwnd +1
    • 如果收到了新的Ack,那么,cwnd = sshthresh ,然后就进入了拥塞避免的算法了。

    如果你仔细思考一下上面的这个算法,你就会知道,上面这个算法也有问题,那就是——它依赖于3个重复的Acks。注意,3个重复的Acks并不代表只丢了一个数据包,很有可能是丢了好多包。但这个算法只会重传一个,而剩下的那些包只能等到RTO超时,于是,进入了恶梦模式——超时一个窗口就减半一下,多个超时会超成TCP的传输速度呈级数下降,而且也不会触发Fast Recovery算法了。

    TCP New Reno

    于是,1995年,TCP New Reno(参见 RFC 6582 )算法提出来,主要就是在没有SACK的支持下改进Fast Recovery算法的——

    • 当sender这边收到了3个Duplicated Acks,进入Fast Retransimit模式,开发重传重复Acks指示的那个包。如果只有这一个包丢了,那么,重传这个包后回来的Ack会把整个已经被sender传输出去的数据ack回来。如果没有的话,说明有多个包丢了。我们叫这个ACK为Partial ACK。
    • 一旦Sender这边发现了Partial ACK出现,那么,sender就可以推理出来有多个包被丢了,于是乎继续重传sliding window里未被ack的第一个包。直到再也收不到了Partial Ack,才真正结束Fast Recovery这个过程

    我们可以看到,这个“Fast Recovery的变更”是一个非常激进的玩法,他同时延长了Fast Retransmit和Fast Recovery的过程。

    ============================over==================================

    参考资料:

    互联网协议入门(一)

    互联网协议入门(二)

    TCP 的那些事儿(上)

    TCP 的那些事儿(下)

    程序员的自我修养——计算机网络

    TCP-IP协议详解(1)邮差与邮局 (网络协议概观)

    TCP-IP协议详解(2) 小喇叭开始广播 (以太网与WiFi协议)

    TCP-IP协议详解(3) IP接力赛(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) 9527(DNS协议)

    TCP-IP协议详解(14) 逆袭(CIDR与NAT)

    TCP-IP协议详解(15) 先生,要点单吗?(HTTP协议概览)

    转载请注明:快课网 » 图解TCP-IP协议

    展开全文
  • OSI模型的通俗理解以及和TCP-IP模型的区别网络通信其实和现实中寄信的通信方式相似以书信的方式进行通信为例。1、物理层:提供为建立、维护和拆除物理链路所需要的机械的、电气的、功能的和规程的特性;有关的物理...

    OSI模型的通俗理解以及和TCP-IP模型的区别

    ps:本人亲测,阿里云2核4G5M的服务器性价比很高,新用户一块多一天,老用户三块多一天,最高可以买三年,感兴趣的可以戳一下:阿里云折扣服务器

    网络通信其实和现实中寄信的通信方式相似

    以书信的方式进行通信为例。

    1、物理层:提供为建立、维护和拆除物理链路所需要的机械的、电气的、功能的和规程的特性;有关的物理链路上传输非结构的位流以及故障检测指示(信件的运输工具,比如火车、汽车)

    2、数据链路层:在网络层实体间提供数据发送和接收的功能和过程;提供数据链路的流控(相当于货物核对单,表明里面有些什么东西,接受的时候确认一下是否正确(CRC检验))。

    3、网络层:控制分组传送系统的操作、路由选择、拥护控制、网络互连等功能,它的作用是将具体的物理传送对高层透明(相当于邮政局或快递公司地址(IP地址),能正确到达对方)

    4、传输层:提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和流量控制(相当于信封(TCP协议是挂号信,是可靠的;UDP协议是平信,尽力送到对方,不保证一点送到对方))

    5、会话层:提供两进程之间建立、维护和结束会话连接的功能;提供交互会话的管理功能,如三种数据流方向的控制,即一路交互、两路交替和两路同时会话模式(相当于邮票,优质邮票寄一封信,相当与一个会话)

    6、表示层:代表应用进程协商数据表示;完成数据转换、格式化和文本压缩(你用普通话还是用方言?或者是英语?)

    7、应用层:提供OSI用户服务,例如事务处理程序、文件传送协议和网络管理等(信件的内容)

    描述一下封装过程

    首先,你应该有需要表达的内容(应用层)
    然后,你需要有一种合适的表达语言(表示层)
    再次,你要把信纸装进一个信封,贴上一张邮票(一封信就是一个会话)
    接下来,你要选择什么方式寄信(挂号信或平信,TCP或UDP)
    第五,选择一个快递公司或邮政局,告诉地址,邮政局根据地址选择运输方式(根据IP地址选择路由)
    第六,邮政局对货物进行再包装,写上装箱单,供接收地的邮政局核对(货物总是先送到对方邮政局,对方邮政局的地址就相当于MAC地址,装箱单就相当于CRC校验码)
    第七,货物通过具体的运输根据(汽车、汽车、飞机等)

    OSI网络体系结构各层协议:

    一、应用层:TELNET、FTP、TFTP、SMTP、SNMP、HTTP、BOOTP、DHCP、DNS

    二、表示层:
    文本:ASCII,EBCDIC
    图形:TIFF,JPEG,GIF,PICT
    声音:MIDI,MPEG,QUICKTIME

    四、传输层:TCP、UDP、SPX

    五、网络层:IP、IPX、ICMP、RIP、OSPF(Open Shortest Path First开放式最短路径优先)

    六、数据链路层:SDLC、HDLC、PPP、STP(Spanning Tree Protocol)、帧中继

    七、物理层:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45

    OSI模型和TCP-IP模型的区别

    OSI 7层模型 依次为 物理 数据链路 网络 传输 会话 表示 应用
    TCP/IP 4层为 数据链路 网络 传输 应用
    TCP/IP把7层简化为4层

    OSI模型是国际互连网标准组织定义出来是网络模型,分的很细 但是实际应用中却大部分只用到了TCP/IP的这4层,所以现在都说TCP/IP模型了
    但是学习的时候 是要知道OSI的

    协议常用端口(每个协议都有一个缺省端口)

    这里写图片描述

    展开全文
  • 基于Modbus TCP-IP协议的WEINVIEW HMI与PC通讯

    基于Modbus TCP/IP协议的WEINVIEW HMIPC通讯







    展开全文
  • TCP-IP协议详解(2) 以太网与WiFi协议

    千次阅读 2018-09-14 14:07:47
    本文转自:https://blog.csdn.net/jjdiaries/article/details/48096295 在阅读“TCP-IP协议详解”系列文章之前,建议阅读以下两篇文章,以便对互联网协议有个快速的全局了解和把握! 互联网协议入门...
  • 转自 http://bbs.chinaunix.net/viewthread.php?tid=271724 《TCP-IP详解,卷1:协议》书 pdf格式http://www.laogu.com/download/tcpipbook1.zip《TCP-IP详解,卷2:实现》书 pdf格式...
  • TCP-IP详解:糊涂窗口综合症(Silly Window syndrome)

    万次阅读 多人点赞 2016-09-08 23:02:46
    主要介绍再接收端和发送端速率不匹配的状况下,TCP协议栈滑动窗口动态调整机制产生的一种问题 叫糊涂窗口综合症,有关滑动窗口的知识可以参考文章TCP-IP详解:滑动窗口(Sliding Window)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 952,819
精华内容 381,127
关键字:

tcp-ip