
TCP/IP协议
博弈Dream
code and code
展开
-
如何学习TCP/IP协议
学习TCP/IP协议的终极方法是自己研究并实现一个TCP/IP协议栈。在Linux内核层面,是要实现下图红框内的部分。乍看这个做法有点不可思议,但其实并没有看上去那么难,下面提供一个可行的方法。1、确定一个Linux发行版,Ubuntu、RedHat都行,uname查看内核具体版本,去The Linux Kernel Archives下载转载 2017-03-04 19:22:18 · 2021 阅读 · 0 评论 -
TCP连接的建立与终止
一个TCP连接由一个4元祖构成,它们分别是两个IP地址,两个端口号。即一个TCP连接是由一对端点或套接字构成,其中通信的每一端都由一对(IP地址,端口号)所唯一标识。一个TCP连接通常分为3个阶段:启动、数据传输和退出下图是一个典型的TCP连接的建立和关闭过程:为了建立一个TCP连接,需要完成以下步骤:1.主动开启者(客户端)发送一个SYN报文段(即一个在TCP头部原创 2017-11-18 15:52:29 · 653 阅读 · 0 评论 -
TCP超时与重传
TCP拥有两套独立机制来完成重传,一是基于时间,二是基于确认信息的构成。后者通常比前者更有效。TCP在发送数据时会设置一个计时器,若至计时器超时仍未收到数据确认信息,则会引发相应的超时或基于计时器的重传操作,计时器超时称为重传超时(RTO)。另一种方式的重传称为快速重传,通常发生在没有延时的情况下。若TCP累计确认无法返回新的ACK,或者当ACK包含的选择确认信息(SACK)表明出现失序报文段原创 2017-11-20 14:06:27 · 1078 阅读 · 0 评论 -
关于TCP协议初步
关于ARQ(自动重复请求)和重传一个处理分组丢失的方法是重发分组直到它被正确接收。这需要一种方法来判断:1.接收方是否已收到分组2.接收方接收到的分组是否与之前发送方发送的一样。接收方给发送方发信号以确定自己已经接收到一个分组,这种方法称为确认(acknowledgment),或ACK。最基本的形式是发送方发送一个分组,然后等待一个ACK。当接收方接收到这个分组时,它发原创 2017-11-15 14:52:18 · 589 阅读 · 0 评论 -
TCP/IP协议学习和理解
一、TCP/IP 背景和介绍上世纪 70 年代,随着计算机技术的发展,计算机使用者意识到:要想发挥计算机更大的作用,就要将世界各地的计算机连接起来。但是简单的连接是远远不够的,因为计算机之间无法沟通。因此设计一种通用的“语言”来交流是必要可少的,这时 TCP/IP 协议就应运而生了。TCP/IP(Transmission Control Protocol/Internet Prot转载 2017-03-04 19:24:25 · 567 阅读 · 0 评论 -
TCP数据流与窗口管理
交互式通信TCP流量中,大约90%或者更多的TCP报文段都包含大批量数据(如Web、文件共享、电子邮件、备份),其余部分则包含交互式数据(如远程登录、网络游戏)。批量数据段通常较大(1500字节或者更大),而交互式数据段则会比较小(几十字节的用户数据)。ssh(安全外壳协议)是具备较强安全性(基于密码学的加密和认证)的远程登录协议,已经基本取代了早期的Telne...原创 2017-11-23 16:30:58 · 1235 阅读 · 1 评论 -
TCP慢启动与拥塞避免算法
路由器因无法处理高速率到达的流量而被迫丢弃数据信息的现象称为拥塞。当路由器处于上述状态时,就表明发生了拥塞。TCP拥塞检测针对丢包情况,TCP采取的首要机制是重传,包括超时重传和快速重传。考虑如下情形,当网络处于拥塞崩溃状态时,共用一条网络传输路径的多个TCP连接却需要重传更多数据包,可想而知,结果只会更糟,所以这种情况应该避免。当拥塞状况出现时,我们可以减缓TCP发送端的发送原创 2017-11-27 14:23:52 · 4606 阅读 · 0 评论