TCP digest

TCP在网络OSI的七层模型中的第四层——Transport层,IP在第三层——Network层,ARP在第二层——Data Link层,在第二层上的数据,我们叫Frame,在第三层上的数据叫Packet,第四层的数据叫Segment。   首先,我们需要知道,我们程序的数据首先会打到TCP的Segment中,然后TCP的Segment会打到IP的Packet中,然后再打到以太网Ethernet的Frame中,传到对端后,各个层解析自己的协议,然后把数据交给更高层的协议处理。

 

你需要注意这么几点:

  • TCP的包是没有IP地址的,那是IP层上的事。但是有源端口和目标端口。
  • 一个TCP连接需要四个元组来表示是同一个连接(src_ip, src_port, dst_ip, dst_port)准确说是五元组,还有一个是协议。但因为这里只是说TCP协议,所以,这里我只说四元组。
  • 注意上图中的四个非常重要的东西:
    • Sequence Number是包的序号,用来解决网络包乱序(reordering)问题。
    • Acknowledgement Number就是ACK——用于确认收到,用来解决不丢包的问题
    • Window又叫Advertised-Window,也就是著名的滑动窗口(Sliding Window),用于解决流控的
    • TCP Flag ,也就是包的类型,主要是用于操控TCP的状态机的

http://kb.cnblogs.com/page/209100/

时间: 2024-08-31 14:47:09

TCP digest的相关文章

TCP/IP, WebSocket 和 MQTT

按照OSI网络分层模型,IP是网络层协议,TCP是传输层协议,而HTTP和MQTT是应用层的协议.在这三者之间, TCP是HTTP和MQTT底层的协议.大家对HTTP很熟悉,这里简要介绍下MQTT.MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分.该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器的通信协议. HTTP的不足 HTTP协议经过多年的使用,发现了

TCP/IP协议体系结构简介

  1.TCP/IP协议栈 四层模型 TCP/IP这个协议遵守一个四层的模型概念:应用层.传输层.互联层和网络 接口层. 网络接口层 模型的基层是网络接口层.负责数据帧的发送和接收,帧是独立的网络信息传 输单元.网络接口层将帧放在网上,或从网上把帧取下来. 互联层 互联协议将数据包封装成internet数据报,并运行必要的路由算法. 这里有四个互联协议: 网际协议IP:负责在主机和网络之间寻址和路由数据包. 地址解析协议ARP:获得同一物理网络中的硬件主机地址. 网际控制消息协议ICMP:发送消

飞鱼星路由器TCP/IP优化加速

任何的网络都有一定的带宽,如果带宽占满了,那么我们就无法再获得更快的体验,这时很多人都会选择添加一条新的线路,或是增加原本的带宽,其实不然,可以通过TCP/IP优化加速来解决这个问题,本篇以飞鱼星路由器为例分析. 一.解决这个问题的一个方法是优化现有技术方案.许多网络流量仍然基于TCP/IP.TCP提供了可靠有序的数据包传输,大多数Web应用.电子邮件和文件传输都使用这种协议.可是,TCP的流管理算法并不先进:如果网络或接收端无法处理发送的传输速度,其表现是出现丢包.超时或乱序数据包过多等问题,

tcp为什么要三次握手,而不能二次握手?

谢希仁版<计算机网络>中的例子是这样的,"已失效的连接请求报文段"的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server.本来这是一个早已失效的报文段.但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求.于是就向client发出确认报文段,同意建立连接.假设不采用"三次握手",那么只要server发出确认,新的

java tcp-tomcat应用出现了很多自己连自己tcp,有大神知道什么问题吗?

问题描述 tomcat应用出现了很多自己连自己tcp,有大神知道什么问题吗? TCP 127.0.0.1:3313 127.0.0.1:3314 ESTABLISHED 3960 TCP 127.0.0.1:3314 127.0.0.1:3313 ESTABLISHED 3960 TCP 127.0.0.1:3315 127.0.0.1:3316 ESTABLISHED 3960 TCP 127.0.0.1:3316 127.0.0.1:3315 ESTABLISHED 3960 TCP 127

tcp连续传输数据getlastError 122

问题描述 tcp连续传输数据getlastError 122 struct { double a; double b;}WS;struct { WS[200000]; double num;}MS; 连续传输MS结构体数据发生接收不到数据现象,getlasterror后 错误122.求帮助 解决方案 调用发送tcp发送函数的返回值是多少???建议用鲨鱼工具网络抓包分析比较擅长这块有疑问可以在我博客上留言或者给我发邮件

连接-TCP通信的数据格式该怎么定义???

问题描述 TCP通信的数据格式该怎么定义??? 请问TCP长连接该怎么定义什么样的数据格式才不会粘包呢?大牛们请指教!谢谢! 解决方案 粘包没关系,只要能正确拆包就行.比如约定: 发送,先发4个字节表述数据的长度,再发数据. 接受,先接受4个取得长度,再按长度读取数据.剩下的就是下个包的. 解决方案二: 自己定义包的结构,里面定义字段定义包的长度等,收到数据后,根据协议解析数据包等

深入浅出TCP协议的三次握手过程

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 每一次TCP连接都需要三个阶段:连接建立.数据传送和连接释放."三次握手"就发生在连接建立阶段. 1.三次握手(three times handshake) 所谓的"三次握手"即对每次发送的数据量跟踪进行协商使数据段的发送和接收同步,以及根据所接收到的数据量来确定数据发送.接收完毕后何时撤消联系,并建立虚连接. 第一次握手:主机A发送位码为syn=1,随机产生seq number

阿里云SLB使用Windows 2008/Windows 2012时TCP端口不通

Linux使用LVS DR或者阿里云的SLB TCP模式转发时,需要关闭rp_filter参数,否则会造成健康检查正常,但是端口不通的情况. 随着Windows系统的升级,在Windows2008以上版本, 也有了这样类似功能的参数weakhostsend(中文版系统叫弱主机),如果弱主机发送接收被禁用,就会导致阿里云TCP协议的SLB转发异常.win/linux下这个参数的功能是类似的,都是为了 防止跨接口转发数据包. 我们来测试一下: 1 2 SLB VIP: 101.201.178.107