计算机网络基础知识学习总结

网络五层模型

1、分层是为了更高效的通信及定位错误
2、每一层都使用了一些协议,目的是为了通信双方能够正常的通信以及理解对方的用途,
3、每一层的实现,都是为了上层功能的实现做好了铺垫
4、越靠下的层,越接近硬件,越靠上的层越接近用户
5、每层都对数据进行封装

在这里插入图片描述

实体层

1、通过物理手段,将设备链接起来
2、按照逻辑电位(高电位1,低电位0)进行数据的传输

ps:无法解析传输过来的数据:0101010101011101011100

链路层

1、确定了电信号的分组方式,把每组电信号当成一个数据包(帧)
2、数据通过网卡进行接收和传输的,确认了网卡到网卡的通信
3、以广播的形式通过物理介质发送给接收方

在这里插入图片描述

Head:
发送者和接收者信息,固定为18字节

Data:

发送的具体内容,最短为46字节,最长为1500字节,超出范围则分为多个帧

尾部:
固定4个字节,表示数据帧校验序列,用于确定数据在传输中是否损坏

**协议:**以太网协议
1、规定一组电信号为一个数据包(帧),并将帧分为两部分。
2、连入网络的所有设备,必须具备万卡,数据包从一块网卡到另一块网卡。网卡的地址就是发送者信息和接收者信息下,也就是Mac地址。

引发的问题

1、发送者如何知道接收者的Mac地址?
2、发送者如何知道接收者和自己同属一个局域网?
3、如果接受者和自己不在一个局域网,数据包如何发送给对方?

网络层

1、网络层引入三个协议,IP协议,ARP协议,路由协议,实现设备到设备的通信

ARP寻址协议

1、PC1发送一个请求包,包含了目标计算机得IP地址;
2、PC1发送数据包到交换机;
3、交换机将PC1得数据包进行整个局域网得转发
4、每台计算机都查看PC1发送过来得数据包,对比其中的IP地址;
5、IP相同则接收,并回复Mac地址,否则丢弃;

IP协议

制定了一套新的地址,使我们能够区分两台主机是否同属于一个网络。

路由协议

1、通过IP协议判断两台设备是否处于统一网络中,如果在,则通过ARP获取Mac地址
2、如果不在,则将数据转发到网关进行路由。网关是互联网中网络与网络的桥梁,多次转发后数据到达设备所处网络中,然后APR获取Mac地址
3、完成路由协议的设备就是路由器

传输层

1、明确端口,表明应用身份,实现端口到端口的通信。

在这里插入图片描述

Head:
源端口号和目标端口号

Data:
尽量不要超过IP数据包的长度,否则会再次分割。

UDP:

不可靠,不稳定
效率高

TCP协议:
可靠,稳定

应用层

1、定义数据格式,并按照正确的格式解读。

在这里插入图片描述

梳理

整体流程–浏览器发送一个http请求后实际发生了什么?

**应用层 (Application Layer):**生成应用层数据。例如,用户在浏览器中输入 URL,浏览器生成一个 HTTP 请求。
**数据:**GET / HTTP/1.1 Host: example.com

**传输层 (Transport Layer):**将应用层数据封装为传输层数据单元(如 TCP 段)。传输层添加 TCP 头部信息,包括源端口、目标端口、序列号等。
**数据单元:**TCP 段
封装:[TCP 头部] [HTTP 数据]

**网络层 (Network Layer):**将传输层数据单元封装为网络层数据单元(如 IP 数据包)。网络层添加 IP 头部信息,包括源 IP 地址、目标 IP 地址、TTL 等。
**数据单元:**IP 数据包
封装:[IP 头部] [TCP 段]

**数据链路层 (Data Link Layer):**将网络层数据单元封装为数据链路层数据单元(如以太网帧)。数据链路层添加 MAC 头部信息,包括源 MAC 地址、目标 MAC 地址、帧类型等。
**数据单元:**以太网帧
封装:[以太网头部] [IP 数据包]

**物理层 (Physical Layer):**将数据链路层数据单元转换为物理信号,通过物理介质(如电缆、光纤、无线电波)传输。
**数据单元:**物理信号
**传输:**通过网络介质传输

而在介质传输之前,还包括几个步骤:

1. DNS 解析(应用层)
当用户在浏览器中输入 URL(例如 http://example.com),浏览器首先通过 DNS 解析获取目标主机的 IP 地址。

  • **DNS 请求:**浏览器向 DNS 服务器发送查询请求。
  • **DNS 响应:**DNS 服务器返回目标主机的 IP 地址(例如 192.168.1.10)。

2. ARP 寻址(数据链路层)

获取到目标主机的 IP 地址后,客户端需要知道该 IP 地址对应的 MAC 地址,以便在本地网络中传输数据。

  • **检查 ARP 缓存:**客户端检查本地 ARP 缓存中是否已有目标 IP 地址的 MAC 地址。
  • **ARP 请求:**如果缓存中没有,客户端在本地网络上广播 ARP 请求,询问 “谁是 192.168.1.10?”。
  • **ARP 响应:**目标主机 192.168.1.10 返回其 MAC 地址(例如 00:1A:2B:3C:4D:5E)。
  • **更新 ARP 缓存:**客户端将目标 IP 地址和 MAC 地址对应关系存储在 ARP 缓存中。

3. TCP 握手(传输层)

在传输层,客户端和目标服务器需要建立一个可靠的 TCP 连接,这包括 TCP 三次握手。

  • **SYN 包:**客户端发送 SYN 包到服务器,表示请求建立连接。
  • **SYN-ACK 包:**服务器收到 SYN 包后,返回 SYN-ACK 包,表示同意建立连接。
  • **ACK 包:**客户端收到 SYN-ACK 包后,发送 ACK 包,确认连接建立。

4. 数据封装和传输

一旦 DNS 解析、ARP 寻址和 TCP 握手完成,客户端可以开始封装和发送数据。

  • **应用层:**生成 HTTP 请求报文。
  • **传输层:**HTTP 请求报文封装在 TCP 报文段中。TCP 报文段包含源端口号和目标端口号。
  • **网络层:**TCP 报文段封装在 IP 数据报中。IP 数据报包含源 IP 地址和目标 IP 地址。
  • **数据链路层:**IP 数据报封装在以太网帧中。以太网帧包含源 MAC 地址和目标 MAC 地址。
  • **物理层:**以太网帧转换为比特流,通过物理介质(如电缆、光纤、无线电波)传输。

TCP/IP协议栈干了一件什么事?

1、获取应用程序要传输的数据
2、new Socket(IPV4,TCP/UDP/Stream/Datagram),确定好传输协议
3、封装端口号、IP地址
4、MAC地址,封装Mac地址
5、确定对方和自己的设备处于同一个网络中

为什么udpop数据包的最大长度是65536?

1.UDP报头结构

UDP报头包括四个字段,每个字段2字节(16位)

  • 源端口号:16位
  • 目标端口号:16位
  • 长度: 16位
  • 校验和:16位

2.UDP字段长度
字段长度是指定整个UDP数据报的长度,包括UDP报头和UDP数据。由于这个字段是16位的,所以是2的16次方-1 即65535

3.IP报头结构
UDP数据报同偿封装在ID数据报内。IPv4头部也有一个总长度字段,总长度字段为16位,表示整个Ip数据报的长度,包括IP头部和数据。这个字段同样表示的最大值是65535

TCP的特性

UDP的发送与接收中产生的问题

发送端(网关):

1、ipv4协议约定

UDP的一个数据包最大为65536k

2、应用层分片

发送端主动对发送的udp报文进行拆分

接收端:

1、mtu

最大接收单元 1450 ===》 IP分片、重组(消耗时间)

在这里插入图片描述

2、ip分片

在这里插入图片描述

3、UDP缓冲区

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值