TCP/IP详解 笔记十三

摘要:
8.类似地,IP数据包将被复制,因此需要对TCP进行重复数据消除。9.流量控制。TCP的每一侧都有固定大小的缓冲区空间。接收端只允许发送端发送它可以保存的数据。字节流服务的TCP消息结构字段解释:套接字对:ip头的ip+TCP头的端口唯一地决定了一个应用程序,而相反的套接字被称为套接字对,它唯一地决定TCP的两端。由于TCP提供全双工服务,连接的每一方都必须保存传输数据的序列号。

TCP协议(一) 概述

特点

1,  面向连接可靠的字节流服务

2,  只有两方通信,不能用于广播或多播

3,  应用数据被TCP分隔为最合适发送的数据段,传给IP协议栈

4,  发送端并启动定时器,超时重传

5,  接收端需要发送确认

6,  检验和错误的数据包将被丢弃,并不确认收到此数据包(希望超时重传)

7,  重新排序,因为TCP数据包是IP报文的数据,而ip协议不保证数据按顺序到达,所以需要重新排序。

8,  同理,ip包会发生重复,所以TCP需要排重。

9,  流控制,TCP的每一方有固定大小的缓冲空间,接收端只允许发送端发送能容纳的数据。

10, 提供全双工服务。

字节流服务

TCP/IP详解 笔记十三第1张

TCP报文结构

TCP/IP详解 笔记十三第2张

TCP/IP详解 笔记十三第3张

字段解释:

插口对:IP头部的ip+tcp头部的端口唯一确定一个应用程序,而相对的插口称为插口对唯一确定tcp双方。

序号:标识发端向收端发送的数据字节流,表示这个报文中的第一个数据字节。序号对每个字节计数,序号为32bit无符号数据,到达232-1 回到0

SYN:当建立一个新的连接的时候SYN变为1,此时序号字段包含主机选择的初始序号ISN(Initial Squence Number),该主机发送的第一个字节序号为ISN+1。

确认序号:等于上次已经成功收到的字节序号加1,只有ACK标识为1时确认序号才有效。连接一旦建立确认序号总是被设置。

因为TCP提供全双工的服务,所以连接的每一方必须保存传输数据序号。

TCP可以表述为一个没有选择确认和否认的滑动窗口协议,收到数据包后不能确定或否定该数据包的对与错,而只是回复相应的确认序号。

首部长度:给出首部32bit字的数目,为4bit所以,首部长度最长为60字节,不加选项为20字节。存在这个字段的原因是选项长度是可变的。

标识位:

TCP/IP详解 笔记十三第4张

滑动窗口大小:TCP的流量控制由连接双方声明窗口大小提供,窗口大小的单位为字节,起始于确认序号指定的值,窗口大小字段为16bit,所以窗口最大为65535字节。

校验和:覆盖首部和数据,强制性字段,由发端计算和存储,由接收端校验。

紧急指针:当URG为1时才有效,是一个正的偏移量,和序号相加表示紧急数据最后一个字节的序号。

选项:最常见的选项是最大报文大小MSS(Maximum Segment Size).

免责声明:文章转载自《TCP/IP详解 笔记十三》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇测评:华为最新移动应用/APP测试工具MobileTestise 界面参数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

LVS分析

概述 LVS是章文嵩博士十几年前的开源项目,已经被何如linux kernel 目录十几年了,可以说是国内最成功的kernle 开源项目, 在10多年后的今天,因为互联网的高速发展LVS得到了极大的应用, 是当今国内互联网公司,尤其是大型互联网公司的必备武器之一, 从这一点上来说,LVS名副其实。搞了这么多年linux 网络开发维护, 由于一直偏通信方向,...

close函数

通常的UNIX close函数也用来关闭套接字,并终止TCP连接 #include <unistd.h> int close(int sockfd); 返回:成功返回0,出错则为-1 (1)close一个TCP套接字的默认行为是把该套接字标记成已关闭,然后立即返回调用进程,该套接字描述符不能再由调用进程使用; (2)close一个TCP...

namp命令详解

我将用两个不同的部分来涵盖大部分NMAP的使用方法,这是nmap关键的第一部分。在下面的设置中,我使用两台已关闭防火墙的服务器来测试Nmap命令的工作情况。 192.168.0.100–server1.tecmint.com 192.168.0.101–server2.tecmint.com NMAP命令用法 #nmap[ScanType(s)][Op...

TCP协议与 UDP协议 网络的上网流程

Python 小白,网络集合。 TCP协议与UDP协议 1.TCP协议: 可靠传输,==TCP数据包没有长度限制,理论上可以无限长,==但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。 以太网头 ip 头 tcp头 数据 理论上可以无限长 位于传输层, 提供可靠的字节流服务。所...

/etc/sysconfig/iptables 详解

#头两行是注释说明 # Firewall configuration written by system-config-securitylevel# Manual customization of this file is not recommended. #使用filter表*filter #下面四条内容定义了内建的INPUT、FORWAARD、ACCE...

vertx 从Tcp服务端和客户端开始翻译

写TCP 服务器和客户端 vert.x能够使你很容易写出非阻塞的TCP客户端和服务器 创建一个TCP服务 最简单的创建TCP服务的方法是使用默认的配置:如下 NetServer server = vertx.createNetServer(); 配置TCP服务 如果你不想使用默认配置,当创建服务时,可以通过传递NetServerOptions实例进行配置...