TCP/IP协议卷一(一)
概述
TCP/IP协议不是一个单个的协议,而是一个协议族。
互联网进行通信时,需要相应的网络协议,TCP/IP 原本就是为使用互联网而开发制定的协议族。因此,互联网的协议就是 TCP/IP,TCP/IP 就是互联网的协议。
分层
OSI七层模型:应用层,表示层,会话层,传输层,网络层,物理链路层,物理层。
TCP/IP四层协议模型:应用层,传输层,网络层,链路层。
互联网的地址
互联网上的接口都有一个唯一的Internet地址(IP地址),IP地址长32bit。
IP地址分为五类,并且有不同的格式和范围:
类型 | 范围 |
---|---|
A类 | 0.0.0.0~127.255.255.255 |
B类 | 128.0.0.0~191.255.255.255 |
A类 | 192.0.0.0~223.255.255.255 |
A类 | 224.0.0.0~239.255.255.255 |
A类 | 240.0.0.0~247.255.255.255 |
域名系统
域名系统(DNS)是一个分布式的数据库,用来存储IP地址与主机名之间的映射关系
封装
应用程序用TCP传数据的时候,数据被送入协议栈中。用户数据经由 应用程序,TCP,IP,以太网驱动程序进行层层封装来生成数据报文。
端口号
TCP和UDP使用16bit的端口号来识别应用程序,理论上有2^16(0~65535)个端口号。
查看unix系统下的端口号:grep telnet /etc/services
IP:网际协议
特点
不可靠,无连接
IP首部
普通IP首部由20个字节组成,包含4位版本号,4位首部长度,8位服务类型,16位总长度,16位标识,3位标志,13位片偏移,8位生存时间,8位协议,16位首部检验和,32位源IP之地,32位目的IP地址。
IP路由选择
IP层在内存中有一个路由表,当收到一份数据包并进行发送时,都会对该表进行一次搜索。首先会查看目的IP地址是否为本机的IP地址之一或者IP广播地址,如果是,那么数据表就会被送到由IP首部协议字段所指定的协议模块进行处理,如果不是这些地址,IP层会被设置成路由器的功能,对数据报进行转发。
所有IP路由选择只为数据报传输提供下一站路由器的IP地址,它假定下一站路由器比发送数据报的主机更接近目的,而且下一站路由器与主机是直接相连的。
路由表中的每一项都包含下面这些信息:
- 目的IP地址
- 下一站的IP地址
- 标志
- 为数据报的传输指定一个传输接口
IP路由选择主要完成的功能:
- 搜索本机路由表,寻找能与目的IP地址完全匹配的条目
- 搜索路由表,寻找能与目的网络号想匹配的条目
- 搜索路由表,寻找名为“默认”的条目
UDP:用户数据报协议
概述
UDP是一个简单的面向数据报的运输层协议。
UDP是不可靠的,它把应用程序传给IP层的数据发送出去,但是并不保证他们能够到达目的地。
UDP首部
UDP首部由8字节组成,分别为16位源端口号,16位目的端口号,16位UDP长度,16位UDP检验和。
TCP协议
概述
TCP协议是一个面向连接的协议。
建立和终止连接
在TCP报文中比较重要的字段有:
- 序号(Seq),32bit
- 确认号(Ack),32bit
- 标志位(Flags):共 6 个,即 URG、ACK、PSH、RST、SYN、FIN 等。
建立连接:
- 客户端给服务器发送一段TCP报文,标记位为 SYN,表示“请求建立新连接”;序号为 Seq=x(x 一般为 1);随后客户端进入 SYN-SENT 阶段
- 服务器端接收到来自客户端的 TCP 报文之后,结束 LISTEN 阶段。并返回一段 TCP 报文。标记位为ACK,SYN,Ack=x+1,Seq=y,服务器进入SYN-RCVD状态
- 客户端接收到来自服务器端的确认收到数据的 TCP 报文之后,明确了从客户端到服务器的数据传输是正常的,结束 SYN-SENT 阶段。并返回最后一段 TCP 报文。标志位为ACK,Ack=y+1,随后客户端进入 ESTABLISHED 阶段。
服务器接收到确认信号之后进入ESTABLISHED阶段,建立连接,开始传输数据。
终止连接:
- 客户端发送标志位为FIN,Seq=u,客户端进入FIN_WAIT_1阶段
- 服务器收到终止信号,发送标志位为ACK,Ack=u+1,Seq=v,服务器进入CLOSE_WAIT阶段,客户端收到确认信号,进入FIN_WAIT_2阶段
- 服务器做好了断开连接的准备后,向客户端发送标记位为FIN,ACK,Ack=v+1,Seq=w ,服务器进入LASK_ACK阶段
- 客户端收到服务器准备好的信号后,向服务器发送标记位为ACK,Ack=w+1,Seq=u+1,客户端等待2MSL后关闭连接,服务器收到确认信号后,关闭连接
超时重传
TCP的的超时重传是保证TCP可靠性的一个重要机制。
原理:在发送一个数据以后开启计时器,一定时间内没有收到ACK报文,则重传数据。
TCP/IP协议卷一(一)相关推荐
- TCP笔记之阅读《TCP/IP协议卷一》
标注: 看<TCP/IP协议卷一>记的笔记 处理差错的两种主要方法 差错校正码 数据重传 使用序列号解决分组重复的问题 停止个等待协议的吞吐量性能低,因此允许多个分组被注入网络(滑动窗口) ...
- 【TCP/IP协议 卷一:协议】第三章 IP:网际协议
3.1 引言 unreliable不可靠的意思是它并不能保证IP数据报能成功的到达目的地.IP只提供尽力而为的传输服务. conectionless无连接的意思是IP并不维护任何关于后续数据报的状态信 ...
- 基于tcpdump实例讲解TCP/IP协议
前言 虽然网络编程的socket大家很多都会操作,但是很多还是不熟悉socket编程中,底层TCP/IP协议的交互过程,本文会一个简单的客户端程序和服务端程序的交互过程,使用tcpdump抓包,实例讲 ...
- 《TCP IP协议 详解》思考总结 · 三
前言 这一篇文章主要围绕了IP协议,ICMP协议和UDP协议展开,希望可以在这里大概做一个总结,将<TCP/IP协议详解 卷一>书中TCP相关章节前面的内容做一个结束,在下一篇文章专心的去 ...
- TCP/IP协议详解卷一:Chapter21 笔记
TCP/IP协议详解卷一:Chapter21 笔记 Chapter 21 TCP的超时与重传 21.3 往返时间测量 21.5 拥塞举例 21.6 拥塞避免算法 21.7 快速重传与快速恢复算法 21 ...
- 概述---《TCP/IP协议》卷一 练习题
概述练习题 1.1 请计算最多有多少个 A类. B类和C类网络号. 答:27−2+214−2+221−2=126+16382+2097150=211365827−2+214−2+221−2=126+1 ...
- 概述---《TCP/IP协议》卷一
第1章 概述 1.1 引言 很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但TCP/IP协议族允许它们互相进行通信.这一点很让人感到吃惊,因为它的作用已远远超出了起初的设想. 1.2 ...
- TCP/IP协议(2): 以太网(IEEE 802.3) 协议 —— 构成有线局域网的基本协议
#TCP/IP协议(2): 以太网(IEEE 802.3)协议 -- 构成有线局域网的基本协议 关于以太网(IEEE 802.3) 协议 以太网(Ethernet) 是一套广泛应用于局域网(LAN), ...
- 关于TCP/IP协议簇
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个网络间实现信息传输的协议簇.TCP/IP协议严格来说 ...
最新文章
- Xcode couldn‘t find any iOS App Development provisioning profiles matching ‘com.example.***‘
- 物联网设备僵尸网络趋势分析
- Kubernetes 1.14 版本发布:正式支持Windows 节点,持久化本地卷进入GA
- 商品微服务添加api接口
- HTML5 Canvas 绘图
- Hibernate之关联映射
- 基于python sklearn的 SVM支持向量机 类实现
- cognos java_CognosSDK Java登陆到Cognos
- [matlab数字图像处理10]对一副图像进行二值化,ostu算法等
- 如何更有效的开发中东市场客户?【干货】想拿土豪国大订单看过来!
- 诺基亚 java 软件_初学篇:诺基亚手机软件安装不求人
- 魔方cfop公式软件_按这七步训练,你可以快速玩转魔方!
- CTFHub技能树——备份文件下载
- 《东周列国志》第十六回 释槛囚鲍叔荐仲 战长勺曹刿败齐
- Word全英文件怎么翻译
- HTTP的请求过程解析
- win10如何解决Excel双击打开显示灰色空白?
- MicrosoftExcel函数
- 利用笔记本无线网卡实现共享上网
- 职场中典型的学生思维有哪些?