TCP/IP协议总结

TCP/IP协议簇

应用层-----------定义网络应用软件接口,人机交互
Telnet FTP TFTP SNMP
HTTP SMTP NFS DHCP
传输层-----------用于提供端到端的通信,使用端口号区分上层不同的服务,提供可靠的传输 服务
TCP—传输控制协议,面向连接,字节流的可靠传输协议
UDP–用户报文协议,无连接,面向数据段的不可靠传输协议
端口号:0-65535
静态端口号 1-1023 --著名端口号
动态端口号 1024-65535
MSS 最大段长度 1480B
MTU 最大传输单元 1500B
网络层-----------通过IP地址来进行逻辑寻址;不同网络的互联
ip地址:点分十进制
网络接入层------MAC地址进行物理寻址

IP地址和MAC地址的作用

网络最初的时候,不光有以太网,还有ATM、令牌环网等异构的网络,以太网使用MAC地址通信,为了屏蔽不同网络之间的差异,使用IP地址来进行不同异构网络之间的通信,所以IP地址是提供网络到网络之间的逻辑寻址,但是后来以太网逐渐发展壮大,逐渐成为主流。如果只用IP地址或者MAC地址通信,在理论上是可以的,但是每台主机一个全球唯一的MAC地址或IP地址,会对路由寻址造成很大的困难,所以就使用IP作为一个大范围的寻址,使用MAC地址作为精确到主机的寻址

DNS:域名解析系统

对于IP地址,用户是无法清楚的记得每一个网站的IP地址,所以DNS系统就将域名和IP地址的映射记录为一个数据库,如果用户需要访问某个网站,客户端就会向记录了该映射的服务器请求,然后计算机就可以使用IP地址访问,而用户则不需要记忆复杂的IP地址。域名的组成是有固定格式的,一般都是比较容易记忆的。因为网络中有大量的网站,为了方便管理,域名划分为多级结构,所以域名的查询也是一个比较复杂的过程

域名解析过程

1、浏览器检查自身缓存,如果有,解析结束,
2、检查主机hosts文件中是否有记录,命中解析结束
3、向本地域名服务器发送解析请求,如果命中,则返回结果
4、本地域名服务器向根域名服务器发送解析请求
5、根域名服务器向本地域名服务器返回所查询域名的顶级域名服务器
6、本地域名服务器向顶级域名服务器发送请求
7、顶级域名服务器返回查询域名的注册域名服务器
8、顶级域名服务器找到对应关系,返回给根域名服务器
9、本地域名服务缓存该记录
10、本地域名服务器返回结果给用户

TCP传输控制协议

报文格式

在这里插入图片描述
源端口:2字节
目的端口:2字节

序号:4字节,TCP是面向字节流的,指发送数据的第一个字节的序号
确认号:4字节,期望收到对方下一个报文段的第一个字节序号
数据偏移:4bit,实际上指TCP首部的长度,单位4字节
保留:6bit,置零
紧急URG:为1时,表明紧急指针有效,告诉系统有紧急数据需要传送
确认ACK:为1时,确认号有效,在连接建立后所有传送的报文段ACK为1
推送PSH:为1时,接收方就立即发送TCP字节流,而不是等到缓存满
复位RST:为1时,表明需要释放连接,并重新建立
同步SYN:用来建立连接,为1时,表示是一个连接建立请求或接受报文段
终止FIN:用来释放连接,为1时,表示要求释放连接
窗口:2字节,接受窗口,从报文段的确认号算起,接受方容许对方发送的数据量
校验和:2字节,检验范围包括首部和数据,与UDP检验方法一样
紧急指针:2字节,指出报文段中紧急数据的字节数,窗口为0时,也可发送紧急数据
选项:扩展TCP的功能,最大为40字节
填充:使选项满足4字节的整倍数
数据:MSS,最大段长度,提高传输效率

TCP三次握手

TCP是一个面向连接的传输层协议,在传输数据之前,需要双方交换信息,确保双方都可以正常工作。
第一次握手:客户端请求服务端,发送syn包到服务器,并进入到SYN_SEND状态,等待服务器的回复
第二次握手:服务器收到syn包,知道有客户端向自己请求,自己准备就绪后向客户端发送ack回复报文,同时也向客户端发送syn包,这两个包是一起发送的,即ack+syn,然后服务器进入syn_recv状态
第三次握手:客户端收到ack+syn报文,确认客户端已经做好准备,然后自己准备就绪,再向服务端发送ack,自己进入ESTABLISHED状态,服务端收到ack后,也进入ESTABLISHED状态

TCP四次挥手

TCP是一个可靠的传输协议,断开连接时,要保证数据传输完毕后才断开
第一次挥手:客户端向服务端发送一个fin包,并进入到fin_wait_1状态
第二次挥手:服务端收到fin包后,知道对方要断开连接,回复ack包,并进入到close_wait状态
第三次挥手:服务端向客户端发送fin包,请求断开连接,并进入到last_ack状态
第四次挥手:客户端收到ack后会进入到fin_wait_2状态,再收到fin包后会进入time_wait状态,并向服务端发送ack,服务端收到后,会关闭连接,但是客户端还有等待一段时间才会关闭

TCP的滑动窗口协议

TCP使用滑动窗口协议控制TCP数据的传输,主要以下两种方式

流量控制

接收方可以通过数据包控制发送方发送的数据量,让数据量维持到自己可以接受的范围内,是一种端到端的控制,滑动窗口协议会维持一个可变的窗口,在窗口内的数据才会被发送,这个窗口的大小是有对端可以控制的

拥塞避免

为避免将大量的数据输入到网络中,TCP会将数据慢慢的输入到网络,然后探测网络的最大传输上限,如果发现有网络拥塞,就会立刻减少发送的数据量,然后再慢慢探测,增加自己的发送量,具体的算法:慢开始、拥塞控制、快重传、快恢复

TCP的定时器

TCP是用请求确认的机制,来保证数据传输的可靠性,但是这种机制也有一定的缺陷,一旦确认报文丢失,就有可能会形成死锁的现象,所以设置定时器是为避免通信过程中,出现死锁的现象

重发定时器:如果ACK报文在传输的过程丢失,发送方就可能一直等待对方的ACK,而对方认为自己已经发送了ACK,就等待对方发送数据,这样就会发生死锁,所以重传定时的作用就是在一定时间内没有收到对方的回复,就重新发送请求,这个时间大约为2*RTT
坚持定时器:原因TCP的流量控制机制,如果接受方缓存区满,就会将自己的滑动窗口设置为零,而发送方就会等接受方处理完数据再发送,但是接受方处理完数据,会向发送方请求发送,但是该报文丢失了,这样就会造成死锁,所以坚持定时器的作用就是每隔一段时间向接受方发送一次探测,询问是否可以接受
保活计数器:保活定时器是为防止对方突然无法通信,还没有来的及断开连接,为返回本地一直等待对方响应,就设置一个保活机制,如果在一段时间内没有收到消息,就自己断开连接
时间等待计时器:该计时器用于四次挥手的最后一次,为防止最后一个ACK丢失,而设置的时间,在时间内TCP的连接并非立刻关闭,而是等到该计时器结束才关闭,一般为2msl

UDP

报文格式

在这里插入图片描述

源端口:16bit
目的端口:16bit
长度:数据报总长度,最小为8,表示头部长度
检验和:差错检测,采用伪首部检测方法

UDP特点

UDP的机制没有TCP那么复杂,因为是无连接的协议,所以数据包发出后,就不在关注该数据包,所以UDP相比于TCP比较简单
UDP是将上层数据直接封装上UDP报头后传输,不会关注数据包的大小,数据包的分包是由网络层完成的,TCP是面向字节流的,不关注数据是否是一组数据,而是根据自己的窗口大小发送的,由接受端自行重组。UDP的校验采用伪首部取反码的计算方式

IPV4协议

报文格式

在这里插入图片描述
版本:4bit,标识IP协议的版本,0-15,4标识IPV4,6标识IPV6
首部长度:4bit,标识IP数据表的首部长度,IP数据报首部大小可变,0-15,单位:4字节,最小值为4-0101,最大值15-1111
区分服务:8bit,用于区分服务,0-255
总长度:16bit,标识IP数据报的长度,0-65535,单位:字节。
标识:16bit,用于分片后标识同一数据报,0-65535
标志:3bit,目前只有两位有意义MF和DF
MF:值为1,表示不是最后一个分片,值为0,表示是最后一个分片
DF:值为1,不可以分片,值为0,容许分片
片偏移:13bit,表示分片后的数据部分在原来数据部分的位置,单位:8字节
生存时间:8bit,0-255,表示数据报最大经过的路由器数,单位:跳数
协议:8bit,0-255,表示数据的上层使用的协议,TCP-6,UDP-17
首部校验和:16bit,只检验数据报的首部,不采用CRC,采用首部32bit反码运算求和,后取反码为检验和
源地址:32bit,IP地址
目的地址:32bit,IP地址
扩展头部:1~40字节,须为4字节的整倍数,扩展首部增加了IP数据报的功能
填充:扩展首部的长度不是4字节的整倍数时,用0填充,因此IP数据包的头部长度为4字节的整倍数
数据部分:数据部分的大小为最大MTU减去IP数据报的首部长度

IP数据包将上层的数据封装为IP数据,然后根据IP地址将数据转发出去,网络中的路由器会根据路由表,寻找合适 转发路径,将IP数据包交给目的IP地址的终端,然后再一步一步解封装。所以IP协议最主要的就是IP地址,IP地址也是路由的基础

IPV4地址

IPV4报文是网络层的协议,网络层的网络互联,逻辑寻址,都是依靠IP报文实现的
IPV4地址:点分十进制
IP地址的大小是32位,每8位划分为一个十进制,共4个十进制,使用“.”区分
主类划分:将IP地址划分为A-E类地址
A 0 0000000—0 1111111 0-127
B 10 000000—10 111111 128-191
C 110 00000—110 11111 192-223
D 1110 0000—1110 1111 224-239
E 1111 0000----1111 1110 240-254

单播地址:ABC 既可以作为源也可以作为目标的地址
组播地址:D 只可以作为目标
科研使用:E

主类划分是将IP地址划分为网络位和主机位,不过这种划分是固定的,对于A类来说,网络位固定为8位,主机位为24位,这种划分不灵活,造成Ip地址的浪费,就算是c类地址,主机位也有8位,也就是有256个IP地址,对于一个只有几台PC的网络来说,明显太多了

VLSM

在主类划分的基础上,IP地址浪费的原因是主机位是固定的,不可分的,所以VLSM的改进就是将主机位进入一步划分成子网位和主机位
三级结构:网络位+子网位+主机位
掩码:区分网络位和主机位,这里的网络位包括子网位

CIDR

虽然VLSM解决了IP地址浪费的问题,但是还有一个问题,就是在路由汇总的时候,大量的IP地址会造成路由表查询慢的问题,所以就有一个超网的概念
二级结构:网络位+主机位
这个二级结构与主类不同的是,网络位的划分更加灵活,不在局限于A-E类,可以自由划分,通过掩码来区分不同的网络

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值