TCP/IP封装过程:

端口号:服务器一般都是通过知名端口号(1~1023)来识别应用程序,(TCP)21、23、25,(UDP)53、69、161

TCP报文格式:

  1. 字节号:TCP把连接中发送的所有数据字节都编上号,产生一个随机数作为第一个字节的编号
  2. 序号字段:4字节,序号字段的值则指本段文段所发送的数据的第一个字节的序号,即表示报文段携带的第一个字节数据的编号
  3. 确认号字段:4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号,即把正确收到的最后一个字节的编号+1
  4. 首部长度:4字节,指出TCP首部共有多少个4字节,首部长度在20-60字节之间,该字段值在5-15(?)之间
  5. 紧急URG:当URG=1时,表明紧急指针字段有效,告诉系统此报文段中有紧急文段,应尽快传送(相当于高优先级的数据)
  6. 确认ACK:只有当ACK=1时确认号字段才有效,当ACK=0时,确认号无效
  7. 推送PSH(push):接收TCP收到PSH=1的报文段,就尽快的交付接收应用进程,而不再等到整个缓存就填满后再向上交付
  8. 复位RST(reset):当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,再重新建立传输连接
  9. 同步SYN:SYN=1表示这是一个连接请求或连接接受报文
  10. 终止FIN(finis):用来释放一个连接,FIN=1表明此报文段的发送端的数据已发送完毕,并要求释放传输连接,序号字段有效
  11. 窗口字段:发送端窗口是由接收端决定的,用来告知发送端接受端的缓存大小
  12. 校验和:检测受到损伤的报文段,检验和字段检验的范围包括首部和数据两部分,要在报文段的前面加上12字节的伪首部

单位换算:1 Byte=8bit;1KB=1024 B=1024 Byte=8*1024bit;1 MB=1024KB;1 GB=1024 MB;

10TB大约等于一个人脑的存储量

TCP的连接管理:面向连接的传输需要3个阶段,连接建立、数据传输、连接终止

TCP的三次握手(连接建立):

A客户

(主动打开)

连接请求报文段A→B,同步位SYN=1,序号seq=x(传送数据时第一个数据字节序号是x)

B服务器

(被动打开)

确认报文段A←B,同步位SYN=1,确认位ACK=1,确认号ack=x+1,自己选择序号seq=y
A→B,确认位ACK=1,序号seq=x+1,确认号ack=y+1,TCP连接已经建立

TCP的三次握手(连接释放):

A客户

(主动关闭TCP连接)

客户连接释放,连接释放报文段A→B,终止位FIN=1,序号seq=u

B服务器

(被动关闭)

确认报文段A←B,确认位ACK=1,确认号ack=u+1,自己选择序号seq=v,A到B的连接释放,TCP连接处于半关闭状态,B若发送数据,A任要接收
服务器连接释放,A←B,终止位FIN=1,序号seq=w,确认位ACK=1,确认号ack=u+1
A→B,确认位ACK=1,确认号ack=w+1,序号seq=u+1

TCP流量控制:让发送方的发送速率不要太快,纪要让接收方来得及接收,也不要使网络发生拥塞(滑动窗口协议)

注意:要求避免缩回窗口;接收端可以发送rwnd为0的报文段来暂时关闭窗口;不按序到达的数据先在接收窗口空着,收到后再按序交付

接收窗口(rwnd):由对方发送的包含确认的报文段中所给出的值(窗口大小取决于rwnd和cwnd 2个中较小的)

拥塞窗口(cwnd):由网络为避免拥塞而确认的值

2019-03-6 星期三

通信导论-IP数据网络基础(1)的更多相关文章

  1. 通信导论-IP数据网络基础(4)

    IP地址的编址方法--IP地址+掩码地址=网络地址 分类的IP地址 每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,标志主机或路由器所连接到的网络,另一个字段则是主机号 ho ...

  2. 通信导论-IP数据网络基础(3)

    ICMP(IP辅助协议)--网际控制报文协议 ICMP报文种类:ICMP差错报文(终点不可达.时间超过等5种)和ICMP询问报文(回送请求和回答请求.时间戳请求和回答报文2种) ICMP是一种集差错报 ...

  3. 通行导论-IP数据网络基础(2)

    传输控制协议(TCP) 差错控制:TCP使用差错控制提供可靠性,包括检测受到损伤.丢失.失序的报文段 实现方法:1.16位检验和,2.确认机制:采用确认证实收到的报文段,3.重传(设置一个重传超时RT ...

  4. 图解TCP/IP笔记-网络基础知识

    1.计算机网络发展的7个阶段1)批处理服务器一次只能处理一批程序指令2)分时服务器可以分时为多台客户端服务3)计算机之间通信计算机之间由通信线路连接,互相通信4)计算机网络的产生通过分组交换技术,在不 ...

  5. TCP/IP协议栈---网络基础篇(3)

    TCP/IP协议栈 在网络中实际使用的是TCP/IP,OSI是参考模型. TCP/IP协议栈 – 是由一组不同功能的协议组合在一起构成的协议栈 – 利用一组协议完成OSI所实现的功能 应用层协议 传输 ...

  6. TCP/IP协议(一)网络基础知识

    参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...

  7. 转:TCP/IP协议(一)网络基础知识

    转载:http://www.cnblogs.com/imyalost/p/6086808.html 参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知 ...

  8. TCP/IP协议(一)网络基础知识 网络七层协议

    参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...

  9. 网络基础知识-TCP/IP协议各层详解

    TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...

随机推荐

  1. HTML怎么实现字体加粗

    HTML的加粗标签是<b>标签,是用来对你自定文字加粗,写法如下: 字体加粗:<b>这里是加粗的内容</b> 这样就可以实现加粗了!

  2. 前端使用nginx 达到前后分离的开发目的

    前言: 由于现在要开发一套基于python 的日志分析系统,设计到日志收集,分析,可视化输出,所以我使用前后端分离的做法.记录学习的过程: 00x1: 下载配置nginx:在E盘创建Service 目 ...

  3. 阿里云linux yum源配置

    1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS-Base ...

  4. 软件测试:3.Exercise Section 2.3

    软件测试:3.Exercise Section 2.3 /************************************************************ * Finds an ...

  5. AD域控Dsquery查询命令实列

    注:请以管理员的身份运行cmd程序,要不然某些命令不生效 AD域控Dsquery查询命令实列 查询技术支持二部的所有用户          dsquery user OU=技术支持二部,OU=技术部, ...

  6. C# xml 读xml、写xml、Xpath、Xml to Linq、xml添加节点 xml修改节点

    #region XDocument //创建XDocument XDocument xdoc2 = new XDocument(); XElement xel1= new XElement(" ...

  7. 【Python3学习】Python环境搭建

    以前电脑上安装过一个python2的环境,这次由于项目跟其他团队人员对的时候,人家的是python3,因为python2也没怎么学,所以对里面还是很不了解的. 所以今天就重新开始python3的学习, ...

  8. java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider.<init>()

    这个问题好奇怪, 出现这个错误是通用Mapper初始化的错误,排查的方向就是往这个方向,可能的情况有以下几种: .jar包冲突 <dependency> <groupId>tk ...

  9. socket学习

    对应的代码: 服务端: import socket phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #买手机 phone.bind(( ...

  10. C# 字符串按 ASCII码 排序,注意其中的小坑

    https://www.cnblogs.com/similar/p/6739293.html 在和银行做数据对接时,涉及到数据传输时的验签及加密.其中数据签名方案中就要求数据项根据属性名按 ASCII ...