网络协议学习(二)

本文深入介绍了网络分层模型,包括物理层、数据链路层、网络层和传输层的主要功能。重点讲解了TCP/IP协议的细节,如TCP的可靠传输、流量控制、拥塞控制以及三次握手和四次挥手过程。同时提到了UDP的特点和应用,并阐述了DNS域名系统的工作原理。
摘要由CSDN通过智能技术生成

网络协议学习(二)

一、网络分层
在这里插入图片描述
传输数据就是穿衣脱衣的过程

1、物理层

物理层定义了接口标准,线缆标准、传输速率、传输方式
在这里插入图片描述
(1)数字信号和模拟信号
在这里插入图片描述
(2)数据通信模型
在这里插入图片描述
(3)信道

定义: 一条传输介质上又多条信道(比如网线)
在这里插入图片描述
2、数据链路层

(1)链路
在这里插入图片描述
集线器直接当作网线处理

(2)数据链路层-封装成帧
在这里插入图片描述
(3)数据链路层-透明传输
在这里插入图片描述
(4)数据链路层-差错检验

在这里插入图片描述
通过fcs计算比较,判断数据是否出错

(5)CSMA/CD协议
在这里插入图片描述
虽然交换机已经全双工通信,已经不需要CSMA协议了。

注意:必须要64字节得原因是因为在冲突得时候,你可以发现返回得是冲突信号还是正常信号

Ethernet V2帧
在这里插入图片描述
完整以太网帧
在这里插入图片描述
在这里插入图片描述

(6)PPP协议
在这里插入图片描述
因为是点到点的协议所以在ppp协议中源mac和目标mac是形同虚设 ,在上一个协议中因为是广播信号,所以需要mac地址导航

3、网络层

定义:网络层数据包(IP数据包),由首部、数据2部分组成;
在这里插入图片描述
(1)版本、首部长度
在这里插入图片描述
首部长度:统计首部部分的长度

(2)总长度
在这里插入图片描述

(3)区分服务

占8位字节,提供更高质量的网络服务(当有区分服务的时候优先通过或者满足特殊需求)

(4)标识

当总长度大于1500字节的时候会分片,每一片都有自己的ip首部(也就是上述所说的总长度),但是传输后需要合并,这个时候就需要我们的标识符进行区分;

(5)片偏移

当标识符区分了之后,但是分片的顺序不知道哪片在首部,哪片在尾部,这个时候需要片便偏移
在这里插入图片描述
因为字节偏移太大,所以除以8得到片便宜

(6)标志
在这里插入图片描述
作用在于判断是否为最后一片
在这里插入图片描述

(7)首部检验和

计算数据与其他数据比较,判断数据是否出错

(8)协议
在这里插入图片描述
(9)生存时间

当两个路由器的下一条都是默认路由,并且都没有储存相关的路由,可能会在两个路由之间一直传输,导致浪费流量,造成损失。所以需要设置生存时间。
在这里插入图片描述
在这里插入图片描述
可以通过ping命令后面的Tll的值来获取对方的操作系统
在这里插入图片描述
设置TTL为1,到了网关就减没了。

4、传输层

作用:负责传输响应,保证传输的可靠性。
在这里插入图片描述
一般只看当前的状态和信息的时候使用UDP,举例:如果使用tcp当昨天的消息网络不通后,会继续发送,导致聊天混乱。

UDP

1、UDP-数据格式
在这里插入图片描述
2、UDP-端口
在这里插入图片描述
可以设置防火墙阻止访问端口,只有内部才能访问。

TCP

1、TCP-数据格式
在这里插入图片描述
一个细节
在这里插入图片描述

(1)数据偏移
在这里插入图片描述
因为头部至少为20,所以数据偏移至少为5

(2)保留

全为0,暂时没用上,6位或者3位

(3) 标志位
在这里插入图片描述
在这里插入图片描述
(4)序号、确认号、窗口

序号是记录发送数据的第一位的编号,确认号是为了保持数据的顺序性,和序号组合使用,当接收到1-100的数据之后,确认号就是101,期待101序号发送过来
在这里插入图片描述
TCP的几个要点

1、可靠传输

停止等待ARQ协议,自动重传,必须得到响应,没得到响应就会重新发送
在这里插入图片描述
在这里插入图片描述
但是这样效率低,所以需要连续ARQ+滑动窗口协议(连续发送4个)
在这里插入图片描述
建立连接的时候,接收方就会告诉发送方自己会接收多少字节的大小,当确认收到400字节后,滑动窗口就会往左边滑动,恢复ack和Ack(ACK相同时候说明同一请求)

滑动窗口例子
在这里插入图片描述
相关问题

(1)SACK技术:当丢包的时候可以判断发送重复包,可以放在tcp首部的选项部分,kind:5

(2)重传多次:当重传多次之后,就会发送reset报文(释放链接并且重新建立连接)

(3)返回大文件的时候,在传输层就已经开始分片了,根据窗体的大小,在传输层中就开始分片的原因如下:
在这里插入图片描述
因为响应的结果是在传输层进行传输的,当不在传输层切割的时候,如果掉包,服务器传输层就会不发送ACK,客户端发现响应不了,就会重新发包,但是由于传输层是一整块,不知道是那一部分丢包,所以又会发送一整块,造成效率降低,所以需要在传输层分片,丢包的时候可以精准的发送丢失的那一块小包。

(4)如图
在这里插入图片描述

2、流量控制
在这里插入图片描述
举例:rwnd就是对方窗口大小,在响应恢回复的时候发送窗口大小
在这里插入图片描述
在这里插入图片描述
3、拥塞控制

背景
在这里插入图片描述
类似于道路上开车,堵车,所以需要进行拥塞控制
在这里插入图片描述
拥塞控制的方法

(1)几个缩写
在这里插入图片描述
所以MSS是1460,在连接的时候,发送方和接收方会互相沟通自己的MSS,然后取双方的最小值,

其余:真正发送的包的大小是由拥塞窗口和接收窗口共同决定,当网络畅通,拥塞窗口自然变大
在这里插入图片描述

(2)慢开始

慢慢变多发包的速度,越来越多,呈两倍增长(试探性的发包)
在这里插入图片描述
(3)拥塞避免

当慢开始之后,在cwnd达到阈值,就开始不成倍增长,开始呈线性增加(拥塞避免)
在这里插入图片描述
(4)快重传
在这里插入图片描述
在这里插入图片描述
当收到连续3个重复确认(实际是4个)发送方就会重新发送丢失的包,就不会等待就收完毕后在发包

(5)快恢复
在这里插入图片描述
丢包之后不用继续慢开始
在这里插入图片描述
(6)发送窗口最大值
在这里插入图片描述

4、建立连接

序列号和确认号

(1)三次握手后建立连接,服务器开始分片发送值

(2)建立连接的时候 ,就开始定义序号的起始值,防止被人很容易破解
在这里插入图片描述
(3)客户端与服务器的连接以及发送流程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
大致流程
在这里插入图片描述

三次握手
在这里插入图片描述
前两次握手的特点
在这里插入图片描述
问题:

为什么要三次握手,两次不行吗?
在这里插入图片描述
当网络延迟,可能出现第一次发送的连接在释放之后才到,这样的话,又建立了一个链接,但是客户端已经执行完了操作,导致此次的连接不能释放,所以会浪费资源。采取三次握手的话,需要确认,当迟到的在服务器确认的时候,客户端可以不响应确认,链接就可以自动释放。

第三次握手失败会发送什么事情?
在这里插入图片描述

5、释放连接

四次挥手
在这里插入图片描述
在这里插入图片描述

问题:
在这里插入图片描述
如果只有三次挥手的话,服务器发送fin之后突然断开,并且丢包,客户端会一直等待

为什么需要等待时间
在这里插入图片描述
保活、心跳包

保活:每隔一段时间发送心跳包,保持连接(因为可能出现服务器浪费资源,后续会在应用层添加逻辑使得三次握手后隔一段时间没有数据就会断开连接)。

为什么会出现三次挥手(实际上还是四次挥手)
在这里插入图片描述
两次同时fin是促发closing

完整的TCP操作
在这里插入图片描述

相关知识点补充

(1)什么是长连接,什么是短连接

短连接:进行一次数据交互就断开就是短连接

长连接:三次握手创建连接之后,不会断开,可以一直交互

(2)假设数据太多,网卡接受不过来怎么处理

直接丢弃

(3)conn是即时连接互不影响(java中的shock)

5、应用层

常用协议
在这里插入图片描述
(1)域名

由于ip地址不容易记住,所以出现了域名(但是域名占的空间太大,所以仍然使用ip传递)

顶级域名(后缀)
在这里插入图片描述
二级域名

在这里插入图片描述
(2)DNS域名系统

在这里插入图片描述
发送域名的时候,会进入DNS服务器,使用DNS协议获取ip地址,他是多台服务器,从顶级开始一步一步的找到自己想找的域名服务器,如下图所示:
在这里插入图片描述

常用命令
在这里插入图片描述
注:www没啥用,万维网老板也后悔,多浪费1s,增加温室效应。

(3)IP地址的分配

静态ip

地址需要手动设置,一般使用不怎么挪动的电脑

动态ip(DHCP)

动态主机配置协议
在这里插入图片描述
在这里插入图片描述
如果看完对自己有所帮助,请点赞支持,谢谢

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值