TCP/IP协议

        

 

在TCP/IP协议族中,

 网路层协议包括IP协议、ICMP协议、IGMP协议。(Ping,Traceroute都使用ICMP协议)

 传输层协议包括TCP、IP。

 

T C P传给I P的数据单元称作 T C P报文段或简称为T C P段(T C P s e g m e n t) 。I P传给网络接口层的数据单元称作I P数据报(IP datagram)。通过以太网传输的比特流称作帧(Fr a m e )。

    

        * 由系统内核处理网络协议中的下三层(传输层、网络层、链路层) 

        * Tr a c e r o u t e工具可以让我们看到I P数据报从一台主机传到另一台主机所经过的路由。

        * 广播和多播仅应用于 U D P。

 

        TCP协议:

        

* TCP能提供的功能:

  包括自适应的超时和重传策略、校验检验和、对数据进行排序、丢弃重复的数据、流量控制。

 

* TCP的数据结构:

  TCP数据被封装在一个IP数据包中,包括20字节的IP首部、20字节的TCP首部、以及TCP数据。

 

* T C P还能提供流量控制。T C P连接的每一方都有固定大小的缓冲空间。 T C P的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。T C P的流量控制由连接的每一端通过声明的窗口大小来提供。

 

* T C P将用户数据打包构成报文段;它发送数据后启动一个定时器;另一端对收到的数据进行确认,对失序的数据重新排序,丢弃重复数据; T C P提供端到端的流量控制,并计算和验证一个强制性的端到端检验和。

 

* 当建立一个新的连接时,S Y N标志变1。序号字段包含由这个主机选择的该连接的初始序号I S N(Initial Sequence Number) 。该主机要发送数据的第一个字节序号为这个 I S N加1,因为S Y N标志消耗了一个序号(将在下章详细介绍如何建立和终止连接,届时我们将看到 F I N标志也要占用一个序号) 。

* 既然每个传输的字节都被计数,确认序号包含发送确认的一端所期望收到的下一个序号。因此,确认序号应当是上次已成功收到数据字节序号加 1。只有A C K标志(下面介绍)为1时确认序号字段才有效。发送A C K无需任何代价,因为32 bit的确认序号字段和A C K标志一样,总是T C P首部的一部分。因此,我们看到一旦一个连接建立起来,这个字段总是被设置, A C K标志也总是被设置为1。

 

* T C P连接是全双工(即数据在两个方向上能同时传递) ,因此每个方向必须单独地进行关闭。

* 最大报文段长度(M S S)表示T C P传往另一端的最大块数据的长度。当一个连接建立时,连接的双方都要通告各自的 M S S。我们已经见过M S S都是1 0 2 4。这导致I P数据报通常是4 0字节长。

* TCP给出两个策略来提高发送效率和减低网络负担:(1)捎带ACK。(2)Nagle算法(一次尽量多的发数据)。在编写插口程序的时候,可以通过TCP_NODELAY来关闭这个算法。

* 一般来说,TCP出现连接错误,TCP都会发出一个复位报文段。

 

* T C P管理4个不同的定时器。

1) 重传定时器使用于当希望收到另一端的确认。在本章我们将详细讨论这个定时器以及一些相关的问题,如拥塞避免。

2) 坚持( p e r s i s t )定时器使窗口大小信息保持不断流动,即使另一端关闭了其接收窗口。

3) 保活( k e e p a l i v e )定时器可检测到一个空闲连接的另一端何时崩溃或重启。

4) 2MSL定时器测量一个连接处于T I M E _ WA I T状态的时间。

        TCP的状态迁移图:

        

4.TCP的状态迁移图

ESTABLISHED状态是连接双方能够进行双向数据传递的状态。

 

书P182页给出了TCP的状态图,这是一个看起来比较复杂的状态迁移图,因为它包含了两个部分---服务器的状态迁移和客户端的状态迁移,如果从某一个角度出发来看这个图,就会清晰许多,这里面的服务器和客户端都不是绝对的,发送数据的就是客户端,接受数据的就是服务器。

 

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

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

 

CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED

 

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

 

4.2.服务器的状态迁移图

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

 

CLOSED->LISTEN->SYN_RCVD->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED

 

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

 

4.3.其他状态迁移

书中的图还有一些其他的状态迁移,这些状态迁移针对服务器和客户端两方面的总结如下

 

LISTEN->SYN_SENT,对于这个解释就很简单了,服务器有时候也要打开连接的嘛。

SYN_SENT->SYN收到,服务器和客户端在SYN_SENT状态下如果收到SYN数据报,则都需要发送SYN的ACK数据报并把自己的状态调整到SYN收到状态,准备进入ESTABLISHED

SYN_SENT->CLOSED,在发送超时的情况下,会返回到CLOSED状态。

SYN_收到->LISTEN,如果受到RST包,会返回到LISTEN状态。

SYN_收到->FIN_WAIT_1,这个迁移是说,可以不用到ESTABLISHED状态,而可以直接跳转到FIN_WAIT_1状态并等待关闭。

 

        路由器和网桥:

        路由器是在网络层上对网络进行互联;而网桥是在链路层上对网络进行互联。

网络层传递的是分组,它尽可能快地把分组从源节点送到目的节点。但是并不提供任何可靠性保证。

 

Tcp/IP协议详讲 TCP/IP协议分层详解 TCP/IP 和 ISO/OSI      ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。   TCP/IP协议模型(Transmission Control Protocol/Internet Pro... 阅读详情

相关推荐

基于TCP的CS通信模式

基于TCP的CS通信模式 网络课程实验报告

TCP/IP

网络摘抄:原止(http://www.vckbase.com/document/viewdoc/?id=1084) 一、TCP协议 1、TCP 通过以下方式提供可靠性: ◆ 应用程序分割为TCP认为最合适发送的数据块。由TCP传递给IP的信息单位叫做报文段。 ◆ 当TCP发出一个报文段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能记时收到一个确认,它 就重发这个报文段。 ◆ 当TC...

liuhaixiao 334

深入理解DQN中的Q值:核心概念和应用

在强化学习中,Q值(或称为动作价值函数)是核心概念之一。Q值函数 ( Q(s, a) ) 表示在给定状态 ( s ) 下,采取动作 ( a ) 并遵循某策略后,智能体从当前状态到未来状态所能获得的预期总回报。简言之,Q值是评估特定状态和动作对的好坏的指标。

qlkaicx的博客 2975

TCP/IP详解学习笔记(9)-TCP协议概述

终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读。前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西。TCP和UDP处在同一层---运输层,但是TCP和UDP最不同的地方是,TCP提供了一种可靠的数据传输服务,TCP是面向连接的,也就是说,利用TCP通信的两台主机首先要经历一个“拨打电话”的过程,等到通信准备结束才开始传输数据,最后

一块积木 2万+

AI工作流革命:从n8n到Sora2,揭秘自动化视频创作的底层逻辑

本文深入探讨了AI工作流在自动化视频创作中的应用,重点介绍了n8n、Coze和Sora2的组合如何实现从链接输入到视频输出的全流程自动化。通过三层架构解析、关键技术模块优化及成本控制策略,这套方案显著提升了视频生产效率,适用于电商、热点追踪等多种场景。

gg901的博客 1087

工业场景实战:基于YOLO与多格式标注的传送带异物检测数据集构建指南

本文详细介绍了基于YOLO与多格式标注的传送带异物检测数据集构建方法,涵盖数据采集、标注技巧(YOLO、COCO、VOC格式)、数据增强策略及实战案例。通过工业级解决方案,有效提升异物检测准确率与效率,适用于各类工业场景。

weixin_29168393的博客 464

Tcp/UDP协议详解

为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到了一起。 但是简单的...

寂蝶难双,窃窃思羽. 938

FDTD远场分析实战:从monitor数据到3D远场可视化的完整流程

本文详细介绍了FDTD远场分析的完整流程,从monitor采集的近场数据出发,通过近场-远场变换(NFFFT)生成3D远场可视化结果。文章重点解析了远场转换的物理原理、关键参数设置,并提供了构建稳健数据处理流水线及高级可视化(如3D辐射方向图)的实战脚本与技巧,适用于天线设计与光学器件分析。

weixin_29063035的博客 228

TCP/IP协议详解

网络协议 在计算机网络要做到井井有条的交换数据,就必须遵守一些事先约定好的规则,比如交换数据的格式、是否需要发送一个应答信息。这些规则被称为网络协议。如TCP、IP 等协议。 计算机网络体系结构 OSI参考模型 OSI(Open System Interconnect),即开放式系统互联。一般都叫 OSI 参考模型,是 ISO(国际标准化组织)组织在1985年研究的网络互连模型。ISO 为了更好的使网络应用更为普及,推出了 OSI 参考模型,这样所有的公司都按照统一的标准来指定自己的网络,就可以互通互联了

csp732171109的博客 6197

别再手动转格式了!用Java+LibreOffice命令行实现Word批量转PDF(附Docker部署避坑指南)

本文详细介绍了如何利用Java和LibreOffice命令行实现企业级Word批量转PDF的自动化解决方案,包括多线程优化、Docker化部署及常见问题排查。通过代码示例和实战经验,帮助开发者高效处理文档转换需求,提升工作效率并避免常见陷阱。

552

添加odbc数据源时的一些问题和解决办法

pl/sql

Mr_Syh的博客 9644

TCP/IP 协议

TCP/IP协 TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/...

MengJing_的博客 3697

【Tiny_CD】Tiny_CD变化检测网络详解(含python代码)

tiny-cd网络详解,含论文下载、代码下载地址。

向上生长的程序媛的博客 2161

【Linux】协议——TCP/IP协议

协议就是双方约定好的通信规则,就像打电话时约定"响三声表示紧急情况"一样。在计算机网络中,协议规定了数据如何打包、传输和解包。现实比喻寄快递:需要填写发件人、收件人、地址(协议头部)打包物品:需要合适的包装盒和填充物(数据封装)运输过程:需要选择快递公司(传输协议)

weixin_54114700的博客 1400

【网络安全】基于Python的威胁情报自动推送系统设计与实现(含源码)

本文介绍了一个基于 Python 开发的威胁情报自动推送系统的设计与实现。该系统通过集成 AbuseIPDB 威胁情报数据源与即时通讯平台,实现了恶意 IP 地址的自动化采集、筛选与实时推送功能。文章详细阐述了系统的技术架构、核心算法、数据流转过程以及关键代码实现。系统采用多线程并发架构,通过 Long Polling 技术实现实时消息接收,支持自动推送和交互式查询两种工作模式。文章还提供了完整的部署指南和使用说明,包括环境配置、运行方式等内容。

等风来 312

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

什么是TCP/IP协议

IP协议将HTTP请求封装成数据包,并为其分配源IP地址(你的计算机IP)和目标IP地址(http://www.example.com的服务器IP)。数据包最终被转换成适合物理网络传输的格式(如以太网帧),并通过物理介质(如网线、Wi-Fi信号)发送到目标计算机。数据在网络中被分割成小的数据包,这些数据包可以通过不同的路径独立地传输,然后在目标处重新组装。,并通过网络设备(如路由器)的协同工作,找到最佳的传输路径,将数据包从源地址传递到目标地址。浏览器使用HTTP协议与服务器建立连接,并发送HTTP请求。

读书笔记控的博客 4100

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

TCP/IP协议栈

IP协议栈 无连接协议 结构化的编址,用于寻址和转发 尽力而为的逐条转发 与媒介无关,但可以适应多种数据链路 IPv4 和 IPv6   IPv4 组成 IPv4由32位二进制组成:网络号(16位)+ 主机号(16位) 网络号用于区分不同的IP网络; 主机号用于标识该网络内的一个IP节点。 掩码(mask):用于区分网络和主机,由连续的1(网络)和0(主机)组成。 分类 A类: 0XXXXXXX——(0-127)默认掩码/8 B类: 10XXXXXX——(128-191)默认掩码/16

理想主义的花终将盛开在浪漫主义的土壤里,我的热情永远不会熄灭在现实的平凡之中,我们终将上岸,阳光万里。 3249

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

简述TCP/IP协议

TCP/IP协议 1.什么是协议? 协议,是网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。 (1)语法:即数据与控制信息的结构或格式; (2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应; (3)时序(同步),即事件实现顺序的详细说明。 2.什么是TCP...

luxunlx123的博客 5755
上一篇: SQL Server常用日期格式
下一篇: SQL Server存储过程的事务实现
csbison
博客等级 码龄23年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值