TCP/IP,TCPsocket,tcp协议的特点,tcp报文段最长字节数,tcp头内容,确认号和超时时限的设定细节,tcp协议是GBN和SR的混合体,

一、TCPsocket
1、TCP是面向连接的,它的socket其实是一个数据模型,拥有本IP,目标IP,本端口,目标端口的四元组,还有连接状态信息,并使用一个整数与其对应,这个整数就是文件描述符。
2、这种数据模型封装了一个tcp连接的会话关系,体现在代码上就是socket文件描述符。
3、一个TCPsocket就是一个TCP会话关系。

4、使用tcp通信时,程序员只需要向tcpsocket交付信息,目的IP,目的端口,
tcp会将报文,tcpsocket进行传输,发两样东西
5、体现在函数中是:
write(clientsocket,buf,sizeof(buf));

二、Tcp的特点如下:
1、点对点,一个发送方,一个接收方,无法一对多或者多对多
2、可靠保序,但是没有报文边界,发送的报文和接受的报文需要自定义协议或者特殊符号区别报文,避免将多个识别为一个,或者一个识别为多个。
3、管道化传输,TCP将应用层的报文分割成长度为MSS的报文段,并给每个报文段加上tcp的头部并存放于发送缓冲区,然后通过发送窗口向接收方发传输报文端。
4、发送和接收都有缓冲区,代码中对应write和read时传入的char[] buffer
5、全双工数据,同一连接中的数据是双向流动的,传输时的报文段最大值用MSS表示,maximum segment size
6、面向连接的,传输数据之前需要握手,传输完了需要挥手
7、有流量控制和拥塞控制,跟随网络状态和接收方状态改变发送速率

三、tcp报文最长字节数与计算
1、应用传给TCP的报文被分割成小的报文段,加上TCP头部(20字节),然后加上IP头部(20字节),然后传给数据链路层,
2、数据链路层的最大传输单位大小为1500字节(bit,简称b),
3、可以计算出TCP的MSS为1460b,分割应用层报文时以1460b为单位。

四、TCP头部:

1、序号:
a、TCP头部中的序号不代表tcp分割成报文段时当前报文段的序号,而是当前报文段的第一个字节和整体报文第一个字节的偏移量,是字节序号
b、Tcp连接的发送方和接收方会在握手的时候确认一个序号,就是各自的x值,之后的报文段交换中一直使用确认好的x,每一段各会确认一个x作为初始序号值。
c、每次握手会重新得到一个初始x值,防止新的连接接收网络中的老连接的报文段。

2、确认号:
a、给ACK携带的,确认n-1及以前的字节均被收到,tcp中的ACK是期待发送的序号,就是接收到的连续报文段的字节序号+上一个报文段的字节数,

b、如果发送方发送的tcp报文段序号是100,这个报文段内容有19个字节,接收方就会发送一个ACK120,表示自己期望接收的下一个报文段是字节序号为120的tcp报文段,并确认119以及以前的报文段全部收到。
c、如果此时接收方又收到了序号是80,内容为19字节的报文段,通过累计确认机制,接收方还是会发送一个ACK120作为回复。
d、如果接收方在期望120的时候接收到了序号为140的报文段,这属于乱序了,接收方会继续向发送方发送ACK120表示期望(便于引发快速重传),如果140位于接收窗口中,就会将该报文段接收。

e、序号和确认号都是对字节进行计数的,而不是对报文段进行计数的。

3、标志位:URG,ACK,PSH,RST,STN,FIN,
a、URG是紧急数据,通常不用
b、ACK是确认应答
c、PSH是马上推出数据,也通常不用
d、RST,SYN,FIN用于建立/拆除连接

4、接收窗口:
a、愿意接收的字节数量,就是接收缓冲区空闲区域的大小,用于给发送方控制发送速率,发送方为了防止发送的消息太多溢出导致效率受损,会限制自己的发送窗口的大小。

5、校验和
a、用于检查报文段是否出错。

6、可选项的长度可以通过首部长度计算得出。

五、TCP超时时限的设定:
1、超时时限设置的太长和太短都不合适。
2、在局域网中,tcp报文段传输时往返延时小,可以设定为固定值。
3、往返时延RTT的平均值加上4倍的标准差是动态计算超时时限中合理的设置。

六、TCP协议是BGN协议和SR协议的混合体,
1、使用流水线传输,维护发送窗口和接收窗口。
2、累计确认,肯定应答的序号为期待字节序号的值。
3、发送方窗口只设置一个计时器,与后沿对应的报文段关联,超时后只重传位于后沿的报文段。
4、TCP接收端对滑动窗口以外的包没有规定的处理。
5、发送方在收到发送窗口中某个报文段三个冗余确认应答(加上一个正常的应答一共4个)后会触发后沿报文段重传,这个称为快速重传。

TCP/IP,TCPsocket,tcp协议的特点,tcp报文段最长字节数,tcp头内容,确认号和超时时限的设定细节,tcp协议是GBN和SR的混合体,相关推荐

  1. TCP/IP学习笔记(八)复位报文段

    TCP报文首部中存在一个RST位,如果该位被置1则表示这是个复位报文段.当一个报文段从一端发往一个不存在或者处于异常状态的另一端时,就会以一个复位报文段应答发送端,告知发送端连接出现错误,应当被关闭 ...

  2. TCP/IP卷一:87---TCP拥塞控制之(对标准算法的改进:NewReno、采用选择确认机制、转发确认(FACK)和速率减半、限制传输、拥塞窗口校验)

    经典的标准TCP算法在传输控制领域做出了重大贡献,尤其针对网络拥塞崩溃这一难题,取得了显著效果 然而,仍然可以找到值得改进的地方.考虑到TCP的普遍使用性,越来越多的研究致力于使TCP在更广泛的环境里 ...

  3. TCP/IP详解--第十八章

     第18章 TCP连接的建立与终止 18.1    引言   TCP是一个面向连接的协议.无论哪一方向另一方发送数据之前,都必须先在双方之间 建立一条连接.本章将详细讨论一个TCP连接是如何建立的以及 ...

  4. TCP/IP入门(3) --传输层

    /** 本篇博客由汗青ZJF整理并发布, 转载请注明出处: http://blog.csdn.net/zjf280441589/article/category/1854365 */ 传输层的主要功能 ...

  5. TCP/IP报文头部结构

    IP协议 IP协议是TCP/IP协议族的动力,它为上层协议提供无状态.无连接.不可靠的服务. 优点:简单,高效. IPv4首部一般是20字节长.在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太 ...

  6. java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之计网_Part_1-1(计算机网络体系_七层模型五层模型TCP/IP四层模型、TCPUDPIP的故事【TCP三握四挥】)整起

    PART1:计算机网络体系可以大致分为一下三种, 每一层有自己对应的协议,每一层都是向上一层提供服务,每个分层中所有的协议都称为协议栈 协议:网络中传输信息时的规范和规则 各层一些重要的协议 网络:通 ...

  7. TCP/IP常见面试问题

    TCP/IP常见面试问题 1.OSI七层协议以及四层协议 实际使用时只包含四层协议:从上到下依次是 应用层(http) 传输层(tcp/udp) 网络层(ip) 网络接口层(以太网协议) 2.在网络中 ...

  8. 网络7层架构+TCP/IP原理

    7 层模型主要包括: 1.  物理层:主要定义物理设备标准,如网线的接口类型.光纤的接口类型.各种传输介质的传输速率 等.它的主要作用是传输比特流(就是由 1.0 转化为电流强弱来进行传输,到达目的地 ...

  9. 【编程者必会系列】:TCP/IP之传输层

    计算机网络是计算机基础知识的重点,不管你是C++还是JAVA,安卓还是IOS,都必须要会的基础知识.今天学习的就是TCP/IP的传输层知识点总结,很多知识点将来面试中都会问到,值得学习! /** 本篇 ...

最新文章

  1. Transformer哪家强?Google爸爸辨优良!
  2. 演技之神周润发背后的故事——评影帝周润发鲜为人知的封神之路
  3. (数据挖掘 —— 无监督学习(聚类)
  4. PS5独占游戏RETURNAL:华丽的黑暗电子声音是如何制作的(新 3D 音频引擎)下
  5. Ubuntu 14.04 LTS 配置 Juno 版 Keystone
  6. mavenspringboot配置不同profile环境
  7. php cdi_使用CDI的InjectionPoint注入配置值
  8. Web3.0 兴起之际,元宇宙这杯羹怎么分?
  9. arcgis flexviewer中由Application向widget传值
  10. Spark: Structured JDBC 方式访问远程的高可用HA的HIVE
  11. Vista下将Area效果应用到整个窗体
  12. Linux系统管理.Samba配置文件
  13. ant调用YUI Compressor
  14. window7修改屏幕旋转快捷键
  15. Y7000联想拯救者gtx1050Ti安装cuda9.0
  16. win10怎么把两个盘合成一个,win10怎么把分区合并
  17. Kinect与KinectFusion重建
  18. 作为一名IT工程师该如何提前预防职业病
  19. OCX打包CAB并签名的过程
  20. 【积水成渊-逐步定制自己的Emacs神器】1:Emacs入门

热门文章

  1. 数据库原理及MySQL应用 | 数据库安全加固
  2. 支付宝-蚂蚁金服一面
  3. 四川2021年高考成绩等位分查询,2019年四川高考等位分查询,志愿填报更精准!...
  4. 邵阳市计算机学校某灿,最近喜欢上一首歌。。 大家把自己觉得好听的歌和我分享分享吧。...
  5. Mac上使用USB共享网络
  6. 2018-11-04 在线代码离线翻译Chrome插件一马v0.0.14
  7. 【C深入】程序中的三国天下,栈,堆,静态内存
  8. MPV视频播放器开发日志(02)字幕下载及网络爬虫初探
  9. 最喜欢 - 十年生死两茫茫
  10. 众创美业微信引流系统使用说明