TCP/IP详解 卷一(第十八章 TCP连接的建立和终止)

建立连接

建立一个TCP连接时会发生下述情况

1.客户TCP发送一个SYN(同步)分节,它告诉服务器将在(待建立)连接中发送的数据的初始序列号。

2.服务器确认(ACK)客户的SYN,同时自己也得发送一个SYN分节,它含有服务器将在同一连接中发送数据的初始序列号。

3.客户确认服务器的SYN。

终止连接

TCP终止一个连接需要4个分节

1.某个应用进程首先调用close,我们称该端执行主动关闭。该端的TCP于是发送一个FIN分节,表示数据发送完毕。

2.接受到这个FIN的对端执行被动关闭。这个FIN由TCP确认。它的接收也作为一个文件结束符传递给接收端应用程序。

3.一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个FIN。

4.接收这个最终FIN的原发送端TCP确认这个FIN。

连接建立的超时

有很多情况导致无法建立连接,一种情况是服务器主机没有处于正常状态。

TCP连接超时会进行SYN重传,第2个SYN与第1个的间隔是5.8秒,而第3个与第2个的间隔是24秒。大多数伯克利系统将建立一个新连接的最长时间限制为75秒。

TCP的半关闭

TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。

时间: 2024-10-05 12:45:26

TCP/IP详解 卷一(第十八章 TCP连接的建立和终止)的相关文章

《TCP/IP详解 卷一》读书笔记-----TCP数据流

1.Delayed Acknowledgements:TCP通常不会在收到数据之后立即返回一个ACK,而是会有一个延时,希望能ACK报文段中带上一些数据,通常这个延时为200ms 2.Nagle Algorithm:在TCP连接中,只能有一个小的报文段未被确认.即TCP在发送了一个小的报文段之后,会将之后的小数据都收集起来,直到之前的小报文段得到确认,才将收集到的小数据打包成一个报文段发出.这样做的减少了网络中小报文段的数量,减轻了网络的阻塞,提高了传输的效率 3.当一个包到达以后,它首先被设备

TCP/IP详解 卷一(第二十章 TCP的成块数据流)

本章将介绍TCP所使用的被称为滑动窗口协议的一种流量控制方法. 该协议允许发送方在停止并等待确认前可以连续发送多个分组,这样就可以加速数据的传输. 滑动窗口 下图用可视化的方法显示了滑动窗口协议 我们使用三个术语来描述窗口左右边缘的运动: 1.称窗口左边沿右边缘靠近为窗口合拢.这种现象发生在数据被发送和确认时. 2.当窗口右边沿右移动将允许发送更多的数据,我们称之为窗口张开. 3.当右边沿向左移动时,我们称之为窗口收缩.

TCP/IP详解 卷一(第十四章 DNS:域名系统)

域名系统(DNS Domain Name System)是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息. 从应用角度上看,对DNS的访问时通过一个地址解析器(resolver)来完成的. 在Unix主机中,该解析器主要是通过两个库函数gethostbyname(3)和gethostbyaddr(3)来访问的.前者接收主机名字返回IP地址,而后者接收IP地址来寻找主机名字. 解析器通过一个或多个名字服务器来完成这种相互转换. DNS基础 D

TCP/IP详解 卷一(第七、八章 Ping、Traceroute程序)

Ping程序 Ping程序由Mike Muuss编写,目的是为了测试另一台主机是否可达. 该程序发送一份ICMP回显请求报文给主句,并等待返回ICMP回显应答. ping程序还能测出到这台主机的往返时间 Traceroute程序 Traceroute程序是一个能更深入探索TCP/IP协议的方便可用的工具 Traceroute程序可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由. 下图是书本的一个例子

TCP/IP详解-卷一:协议

第一章概述 第二章Internet地址结构 第三章链路层 第四章地址解析协议 第五章Internet协议 第六章系统配置:DHCP和自动配置 第七章防火墙和网络地址转换 第八章ICMPv4和ICMPv6:Internet控制报文协议 第九章广播和本地组播(IGMP和MLD) 第十章用户数据报协议和IP分片 第十一章名称解析和域名系统 第十二章TCP:传输控制协议(初步) 第十三章TCP连接管理 第十四章TCP超时和重传 第十五章TCP数据流和窗口管理 第十六章TCP拥塞控制 第十七章TCP保活机

《TCP/IP详解 卷一》读书笔记-----广播&多播&IGMP

1.广播和多播都只适用于UDP,因为TCP是面向连接的,需要将两台主机的两个进程绑定在一起,即IP地址和端口对 2.通常,网卡能看到网络中的每一个数据帧,但是往往它只接受目的地址与自己MAC地址相同的或者为广播地址的帧(现在有些也能接收多播地址),然后将它传输给设备驱动 3.广播的问题在于它给那些对广播数据不感兴趣的主机增加了处理负担(需要通过网卡,驱动,IP等一层层的判断),而多播的出现恰好解决了这些问题.通常一台主机会被指定加入一个或多个多播组,网卡也会被告知自己属于哪几个多播组,于是只有属

TCP/IP详解卷一08

1.Traceroute程序可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由(Traceroute程序不需要中间路由器具备任何特殊的或可选的功能). Traceroute程序只需要目的端运行一个UDP模块----其他不需要任何特殊的服务器应用程序. Traceroute程序使用ICMP报文和IP首部中的TTL字段(生存周期,由发送端初始设置一个8bit字段,跳站的计数器,用来防止数据报在选路时无休止地在网络中流动,在循环传递的数据报上加上一个生存上限). 当路由器收到一份IP数据报,

TCP/IP详解卷一07

1.Ping:目的是为了测试另一台主机是否可达.Ping程序发送一份icmp回显请求报文给主机,并等待返回ICMP回显应答(用ping作为诊断工具山如剖析ICMP,检测IP记录路由和时间戳选项的机会)(地址掩码和时间戳请求也都直接在内核中处理). 2.发送回显请求的ping程序为客户,被ping的主机为服务器.(Unix系统中在实现ping程序时是把ICMP报文中的标识符字段设置成发送进程的ID, 此时序列号从0开始,每发送一次回显请求就会加1(ping程序打印出返回的每个分组的序列号,允许查看

TCP/IP详解卷一06

1.ICMP(Internet控制报文协议):用来传送差错报文以及其他需要注意的信息,ICMP报文通常被IP层或者更高层协议(TCP或者UDP)使用,一些ICMP报文把差错报文返回给用户进程.同时,ICMP报文是在IP数据报内部被传送的. 2.ICMP报文的格式:(所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同) 类型字段(15个不同的值):以描述特定类型的ICMP报文. 检验和字段(覆盖整个ICMP报文),检验和是必须存在的?????(理解检验和算法,不会) 3.ICMP报文的类

TCP/IP详解卷一 学习笔记

第一天1 总述: TCP 使用不可靠的IP服务提供一种可靠的运输层服务UDP 不可靠,适用于:实时流量:语音视频流:查询DNS:数据传输:TFTP 停止等待协议. 以太网数据帧长范围是46-1500,小于46要用0来填充,大于1500要分片(MTU分片)以太网的帧首部有一个16bit的帧类型域(ip,arp,rarp)IP在首部中存入一个长度为8bit的数值,称作协议域(icmp,igmp,tcp,udp,esp,gre)TCP和UDP都用一个16bit的端口号来表示不同的应用程序(ftp,te