通信导论-IP数据网络基础(1)
TCP/IP封装过程:

端口号:服务器一般都是通过知名端口号(1~1023)来识别应用程序,(TCP)21、23、25,(UDP)53、69、161
TCP报文格式:
- 字节号:TCP把连接中发送的所有数据字节都编上号,产生一个随机数作为第一个字节的编号
- 序号字段:4字节,序号字段的值则指本段文段所发送的数据的第一个字节的序号,即表示报文段携带的第一个字节数据的编号
- 确认号字段:4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号,即把正确收到的最后一个字节的编号+1
- 首部长度:4字节,指出TCP首部共有多少个4字节,首部长度在20-60字节之间,该字段值在5-15(?)之间
- 紧急URG:当URG=1时,表明紧急指针字段有效,告诉系统此报文段中有紧急文段,应尽快传送(相当于高优先级的数据)
- 确认ACK:只有当ACK=1时确认号字段才有效,当ACK=0时,确认号无效
- 推送PSH(push):接收TCP收到PSH=1的报文段,就尽快的交付接收应用进程,而不再等到整个缓存就填满后再向上交付
- 复位RST(reset):当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,再重新建立传输连接
- 同步SYN:SYN=1表示这是一个连接请求或连接接受报文
- 终止FIN(finis):用来释放一个连接,FIN=1表明此报文段的发送端的数据已发送完毕,并要求释放传输连接,序号字段有效
- 窗口字段:发送端窗口是由接收端决定的,用来告知发送端接受端的缓存大小
- 校验和:检测受到损伤的报文段,检验和字段检验的范围包括首部和数据两部分,要在报文段的前面加上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)的更多相关文章
- 通信导论-IP数据网络基础(4)
IP地址的编址方法--IP地址+掩码地址=网络地址 分类的IP地址 每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,标志主机或路由器所连接到的网络,另一个字段则是主机号 ho ...
- 通信导论-IP数据网络基础(3)
ICMP(IP辅助协议)--网际控制报文协议 ICMP报文种类:ICMP差错报文(终点不可达.时间超过等5种)和ICMP询问报文(回送请求和回答请求.时间戳请求和回答报文2种) ICMP是一种集差错报 ...
- 通行导论-IP数据网络基础(2)
传输控制协议(TCP) 差错控制:TCP使用差错控制提供可靠性,包括检测受到损伤.丢失.失序的报文段 实现方法:1.16位检验和,2.确认机制:采用确认证实收到的报文段,3.重传(设置一个重传超时RT ...
- 图解TCP/IP笔记-网络基础知识
1.计算机网络发展的7个阶段1)批处理服务器一次只能处理一批程序指令2)分时服务器可以分时为多台客户端服务3)计算机之间通信计算机之间由通信线路连接,互相通信4)计算机网络的产生通过分组交换技术,在不 ...
- TCP/IP协议栈---网络基础篇(3)
TCP/IP协议栈 在网络中实际使用的是TCP/IP,OSI是参考模型. TCP/IP协议栈 – 是由一组不同功能的协议组合在一起构成的协议栈 – 利用一组协议完成OSI所实现的功能 应用层协议 传输 ...
- TCP/IP协议(一)网络基础知识
参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...
- 转:TCP/IP协议(一)网络基础知识
转载:http://www.cnblogs.com/imyalost/p/6086808.html 参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知 ...
- TCP/IP协议(一)网络基础知识 网络七层协议
参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...
- 网络基础知识-TCP/IP协议各层详解
TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...
随机推荐
- HTML怎么实现字体加粗
HTML的加粗标签是<b>标签,是用来对你自定文字加粗,写法如下: 字体加粗:<b>这里是加粗的内容</b> 这样就可以实现加粗了!
- 前端使用nginx 达到前后分离的开发目的
前言: 由于现在要开发一套基于python 的日志分析系统,设计到日志收集,分析,可视化输出,所以我使用前后端分离的做法.记录学习的过程: 00x1: 下载配置nginx:在E盘创建Service 目 ...
- 阿里云linux yum源配置
1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS-Base ...
- 软件测试:3.Exercise Section 2.3
软件测试:3.Exercise Section 2.3 /************************************************************ * Finds an ...
- AD域控Dsquery查询命令实列
注:请以管理员的身份运行cmd程序,要不然某些命令不生效 AD域控Dsquery查询命令实列 查询技术支持二部的所有用户 dsquery user OU=技术支持二部,OU=技术部, ...
- C# xml 读xml、写xml、Xpath、Xml to Linq、xml添加节点 xml修改节点
#region XDocument //创建XDocument XDocument xdoc2 = new XDocument(); XElement xel1= new XElement(" ...
- 【Python3学习】Python环境搭建
以前电脑上安装过一个python2的环境,这次由于项目跟其他团队人员对的时候,人家的是python3,因为python2也没怎么学,所以对里面还是很不了解的. 所以今天就重新开始python3的学习, ...
- java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider.<init>()
这个问题好奇怪, 出现这个错误是通用Mapper初始化的错误,排查的方向就是往这个方向,可能的情况有以下几种: .jar包冲突 <dependency> <groupId>tk ...
- socket学习
对应的代码: 服务端: import socket phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #买手机 phone.bind(( ...
- C# 字符串按 ASCII码 排序,注意其中的小坑
https://www.cnblogs.com/similar/p/6739293.html 在和银行做数据对接时,涉及到数据传输时的验签及加密.其中数据签名方案中就要求数据项根据属性名按 ASCII ...