通信导论-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 ...
随机推荐
- 20175236 2018-2019-2 《Java程序设计》第七周学习总结
教材学习内容总结 String类 String类在java.lang包中的类被默认引入,因此程序可以直接使用String类 Java把String类定义为final类,因此用户不能扩展String类, ...
- css中,在高度已知,写出三栏布局,其中左栏、右栏宽度各位300px,中间自适应
解决方案主要有五种 首先写入全局样式 <style type="text/css"> html * { margin: ; padding: ; } .layout { ...
- symfony 踩坑之旅 视频实操从第九章开始
1.annotation定义路由 @Route("/**",defaults={"name":"world"},requirements={ ...
- 知识点:Mysql 索引优化实战(3)
知识点:Mysql 索引原理完全手册(1) 知识点:Mysql 索引原理完全手册(2) 知识点:Mysql 索引优化实战(3) 知识点:Mysql 数据库索引优化实战(4) 索引原理知识回顾 索引的性 ...
- 使用Git Bash上传代码到新的分支
1.进入想要提交的项目,点击鼠标右键,选择"Git Bash Here" 2.输入命令,查看当前所有分支 git branch -a 3.输入命令,新建分支 git checkou ...
- 微信小程序是怎么运行的?
微信客户端在打开小程序之前,会把整个小程序的代码包下载到本地. 紧接着通过 app.json 的 pages 字段就可以知道你当前小程序的所有页面路径 而写在 pages 字段的第一个页面就是这个小程 ...
- numpy学习笔记(四)
(1)NumPy - 矩阵库 NumPy 包包含一个 Matrix库numpy.matlib.此模块的函数返回矩阵而不是返回ndarray对象. matlib.empty()返回一个新矩阵,而不初始化 ...
- CCF2017-9-1
题目: 分析:将所有可能列出来,80可以分为8个10块(这时候最多也是8个),在这种情况下,可以分为2个30块, 3个循环嵌套,判断是不是输入的总钱数,因为不是所有的都是加起来是80,就是分为买多少个 ...
- struct 对齐和补齐原则
// 对齐原则:每一成员需对齐为后一成员类型的倍数 // 补齐原则:最终大小补齐为成员类型最大值的倍数 struct A { int a; // 4 short b; // (4) + ...
- kubernetes学习笔记之十四:helm入门
1.Helm的简介 Helm是Kubernetes的一个包管理工具,用来简化Kubernetes应用的部署和管理.可以把Helm比作CentOS的yum工具. Helm有如下几个基本概念: Chart ...