我是靠谱客的博主 清新铃铛,最近开发中收集的这篇文章主要介绍计算机网络分层简单理解分层模型物理层数据链路层网络层传输层应用层session、token和cookie概念,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

计算机网络分层简单理解

  • 分层模型
  • 物理层
  • 数据链路层
  • 网络层
  • 传输层
    • UDP协议
    • TCP协议
      • 三次握手
      • 四次挥手
  • 应用层
  • session、token和cookie概念

分层模型

在这里插入图片描述
分层模型共有七层,从上到下分别为应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。

但实际表示层和会话层仅存在于概念中,实际应用中并未用到,所以将表示层和会话层与应用层合称应用程,即为五层模型

也有在五层模型基础上,将数据链路层和物理层视作一层,即为四层模型

下面从下往上简单介绍各分层的分工

物理层

物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,该层的主要任务是:确定与传输媒体的接口的一些特性

物理层的主要特性:
1、机械特性
2、电气特性
3、功能特性
4、过程特性

信道概念:

信道一般用来表示向某一个方向传送消息的媒体,根据传输的方向,又可以分为单向信道和双向信道

单向通信:只能由一个方向的通信而没有反方向的交互

双向交替通信(半双工通信):通信的双方都可以放松消息,但是不能双方同时发送

双向同时通信(全双工通信):通信的双方可以同时发送和接收消息

信道的极限容量就是平时常见的带宽概念

数据链路层

链路:是一条无源的点到点的物理线路段,中间没有任何其他的交换结点,一条链路只是一条通路的一个组成部分

数据链路:处理物理线路外,还必须有通信协议来控制这些数据的传输,若把实现这些协议的硬件和软件加在链路上,就构成了数据链路
目前最常用的方法是使用适配器(网卡)来实现这些协议的硬件和软件

数据链路层要解决的是三个问题:

1、封装成帧:将网络层传输来的数据加上头(SOH,Start Of Header)和尾(EOT,End Of Transmission),组成一个帧

2、透明传输:防止数据中碰巧出现SOH或者EOT导致解析错误,解决方案就是在给数据封装成帧之前,将其中的SOH或者EOT前面加上填充字符(对比理解转义字符)

3、差错检测:防止传输过程中可能产生的比特差错,1变成0、0变成1

数据链路层有两个子层:逻辑链路控制(Logical Link Control)和媒体接入控制(Medium Access Control)
其中媒体接入控制对应mac地址,就是计算机(网卡)的物理地址

mac地址又叫做硬件地址或者物理地址;
mac地址在网卡生产出厂就已经确定了,厂商会确保生产出的适配器没有重复地址

IEEE 802标准规定MAC地址字段可采用6字节(48位)或者2字节(16位)两种的其中一种。
IEEE的注册管理机构RA负责向厂家分配地址字段6个字节中的前三个字节(高位24位),成为组织唯一标识符
低位24位由厂家自行指派,称为唯一标识

点对点协议、广播信道、以太网等概念均位于数据链路层

网络层

网络层介于传输层和链路层之间,其主要作用是实现两个网络系统之间的数据透明传送;网络层是网络之间通信的最底层,网络层是IP协议所在层

网际协议IP是TCP/IP体系中两个最重要的协议之一,与IP协议配套使用的还有三个协议:地址解析协议ARP、网际控制报文协议ICMP和网际组管理协议IGMP

IP地址位32位二进制,每8位为一组,共四组,每组转换为十进制后,中间使用逗号隔开,就转换成了常见的IP地址

常见的IP地址为三级结构:主网号>子网号>主机号

使用子网掩码对三级IP结构进行计算,可以得出子网的网络地址

传输层

传输层主要是提供不同主机上的进程之间的逻辑通信,即使在不可靠的网络层(主机间的逻辑通信)传输下,传输层也能提供可靠的传输

网络层的重点是IP地址,而传输层寻址的重点是进程的端口号

补充概念:套接字(Socket) = (Host IP, port)

UDP协议

User Data Protocol,用户数据报协议,无连接服务(通信不需要建立连接),主要用于多媒体信息分发(对速度要求较高,单元数据丢失影响不大)

UDP数据报分为两部分UDP首部和用户数据,首部8个字节,4个2字节字段组成

UDP协议校验数据原则:有错就丢弃

TCP协议

Transmission Control Protocol,传输控制协议,面向连接服务(通信需要建立连接),主要提供可靠信息传输

TCP数据报同样分为数据头部和用户数据两个部分,不过其头部信息远比UDP协议头要多

三次握手

第一次握手:
当客户端向服务器发起连接请求时,客户端会发送同步序列标号SYN到服务器,在这里我们设SYN为m,等待服务器确认,这是客户端的状态为SYN_SENT

第二次握手:
当服务器收到客户端发送的SYN后,服务器要做的是确认客户端发送过来的SYN,在这里服务器发送确认包ACK,这里的ACK为m+1,意思是说“我收到了你发送的SYN”
同时,服务器也会向客户端发送一个SYN包,这里我们设SYN为n,这是服务器的状态为SYN_RECV
在此时,服务器为该TCP连接分配TCP缓存和变量。服务器资源在此时分配(而客户端在第三次完成才分配资源)。记录了客户端的请求信息,如果没收到来自客户端的第三次回话,就会在一段时间内缓存TCP信息,这也是黑客攻击服务器的SYN洪泛攻击

第三次握手
客户端收到了服务器发送的SYN和ACK后,需要向服务器发送确认包ACK,意思是“我也收到了你发送的SYN”,这里的ACK为n+1,发送完毕后,客户端和服务器的状态为ESTABLISH,即TCP连接成功
在这里插入图片描述

四次挥手

第一次挥手
A端向B端请求断开连接时会向B端发送一个带有FIN标记的报文端,这里的FIN是FINISH的意思

第二次挥手
B端收到A发送的的FIN后,B端现在可能还有数据没有传完,所以B端不会马上向A端发送FIN,而是先发送一个确认序号ACK,意思是“发送的断开请求收到了,但是还有数据没发完,请稍等”

第三次挥手
当B端数据发送完成,那么B端就可以断开连接了,此时B端再想A端发送FIN序号,意思是这次可以断开连接了

第四次挥手
A端收到B端发送的FIN后,会向B端发送ACK,然后经过两个MSL时长后断开连接
MSL是Maximum Seqment Lifetime,最大报文段生存时间,2MSL是报文段发送和接收的最长时间
在这里插入图片描述

应用层

应用层是面向用户的一层

FTP、HTTP、HTTPS、DNS和TELNET等协议都是应用层协议

DNS
Domain Name System:域名系统,Domain代表域,对应网络段,Name代表名,对应IP、主机名,DNS可以将域名映射变为IP地址

域名可以分为三级域,例如 www.baidu.com,其中com为顶级域,baidu为二级域,www为三级域
在这里插入图片描述
DHCP
Dynamic Host Configuration Protocol,动态主机设置协议
DHCP是一个应用UDP协议的局域网协议,提供即插即用联网(自动获取IP地址)

session、token和cookie概念

Session指会话,浏览器与服务器的一次会话,不同的用户对服务器发起的会话不是同一个会话。同一用户在会话结束后,重新发起的会话也不是同一个会话

Token是令牌,是服务器对用户的身份校验。用户将Token信息发送到服务器上,与服务器计算生成的结果吻合,代表用户是合法用户

Cookie是保存在用户主机上的浏览器信息,用户某次访问若保存了一些信息(一般以KV形式保存),下次再访问同一个网站时,浏览器就会将保存的Cookie一同发送过去

最后

以上就是清新铃铛为你收集整理的计算机网络分层简单理解分层模型物理层数据链路层网络层传输层应用层session、token和cookie概念的全部内容,希望文章能够帮你解决计算机网络分层简单理解分层模型物理层数据链路层网络层传输层应用层session、token和cookie概念所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部