参考

数据 校验-纠错

https://blog.csdn.net/tjd10061/article/details/48808633/
https://blog.csdn.net/jklf5/article/details/80945504

概念

  • 运输协议数据单元TPDU(TransportProtocolDataUnit)
  • OSI/RM全称是开放系统互连参考模型,英文全称(Open system Interconnection/Reference Model)
  • 代理服务器(proxy server)
  • client客户端 server服务端

    中间设备

  • 路由器Router

路由器其实就是一台专用计算机,用来在互联网中进行路由选择。路由表

  • 网关(gateway)
  • 集线器 交换机 网桥 桥接器(bridge)
  • 转发器(repeater)

    协议Protocol协议族协议栈ProtocolSuite

物理层PhysicalLayer

数据链路层Datalink 数据帧Frame


- PPP(Point-to-PointProtocol点对点协议)
- CSMA/CD(Carrier Sense Multiple Access with Collision Detection协议载波侦听多路访问/冲突检测)
- ARP(Address Resolution Protocol)地址解析协议
- arp欺骗
- 程序 arp.exe
- ARP高速缓存(ARP cache)
- 逆地址解析协议RARP (ReverseAddressResolutionProtocol)

- 网卡=网络适配器
- MAC地址MediaAccessControlAddress媒体存取控制位址48位

- 组帧 首部 尾部
- 帧界定
其实就是在帧的前后添加首部和尾部,这样就能界定帧的边界了。
- 差错控制
- 物理地址寻址
https://zhuanlan.zhihu.com/p/69554474
- 帧结构
- 最大传输单元(Maximum Transmission Unit,MTU)
- 检测码,纠错码
- 帧开始结束符 SFD SOH

网络层NetworkLayer 数据包Packet 数据段Segment

|
- 网际控制报文协议ICMP (InternetControlMessageProtocol)
- 分组网间探测PING (Packet InterNet Groper)
- tracert.exe
- 网际组管理协议IGMP (InternetGroupManagementProtocol)
路由选择协议 |
- 网际互连协议IP Internet Protocol
- 版本 v4 32位 v6 128位
- IP地址
IP地址 = 网络号net-id+主机号host-id
点分十进制记法(dotted decimal notation)
- IP地址分类 ABCED
- 网络号不可用的 全0本网络 全1测试地址
- 主机号不可用的 全0代表这个网络 全一代表全体
- 127.0.0.1
- 语法 IP数据报格式
- 生存时间TTL (Time To Live)
- 子网划分 subnet-id
| | | —- | —- | —- |

传输层/运输层TransmissionLayer 套接字(socket)(IP地址:端口号)

协议端口号(protocol port number)

|
- 端口数目 16位
> 0 到65535(2^16-1)


- 端口分类
- 特权端口公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。
- 注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。
- 客户端口号或短暂端口号 动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。

- 端口状态
- CLOSING: 关闭状态


- LISTENING:握手


- SYN_SENT:握手
- SYN_RCVD:握手


- ESTABLISHED:连接上


- TIME_WAIT : 挥手
- CLOSE_WAIT : 挥手
- FIN_WAIT_1 : 挥手
- FIN_WAIT_2挥手
- LAST_ACK

用户数据报协议UDP (User Datagram Protocol) [RFC 768] 数据报Datagram

|
- 特点
- 无连接
- 尽最大努力交付
- 面向报文:给我多少就发多少
- 没有拥塞控制
- 支持一对一、一对多、多对一和多对多的交互通信
- 首部开销小 8字节
|
- 语法
- 源端口目的端口

  • 长度
  • 检验和 | | | —- | —- | —- |

传输控制协议TCP (TransmissionControlProtocol) 数据报文段(Segment)


- 特点
- 面向连接
- 可靠性 有状态 发送有没有被收到
- 面向字节流
- 全双工通信
- 可控制 超时重发 流量控制 拥塞控制
- 一对一
- 数据校验


- TCP首部格式

计算机网络computer network* - 图3
- SequenceNumber序列号
- AcknowledgmentNumber确认号

  • 标志位 控制位
    - 紧急URG (URGent)
    - 同步SYN (SYNchronization)
    - FIN
    - 复位RST (ReSeT)
    - 推送 PSH (PuSH)
    - 确认ACK (ACKnowlegment)
    |
    - 数据传送
    - 可靠传输
    - 流量控制
    - 拥塞控制
    |
    - 连接管理(三次握手四次挥手)
    - 建立连接
    - 第一次 c发 s收 证明 s知道c可以发 c什么都不知道
    - 第二次 s发 c收 证明 c知道s可以发 s可以收
    - 第三次 c发 s收 证明 s知道c可以收
    向对方证明自己能收到能发送
    计算机网络computer network* - 图4
    - 释放连接
    - 第一次 c发s收 s知道c不发了
    - 第二次 s发c收 c知道s不收了
    - 把报文都发完
    - 第三次 s发c收 c知道s不发了
    - 第四次 c发s收 s知道c不收了
    - c等待2MSL(Maximum Segment Lifetime,报文最大生存时间) 在路上的时间
    - 1 个 MSL 确保四次挥手中主动关闭方最后的 ACK 报文最终能达到对端
    - 1 个 MSL 确保对端没有收到 ACK 重传的 FIN 报文可以到达
    计算机网络computer network* - 图5 |

应用层ApplicationLayer 报文Message


- Telnet(远程登录协议)


- DHCP(Dynamic HostConfiguration Protocol,动态主机配置协议)


- POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”
- SMTP(Simple Mail TransferProtocol,简单邮件传输协议)
- IMAP(Internet Mail Access Protocol)以前称作交互邮件访问协议


- FTP(File TransportProtocol,文件传输协议)
- TFTP(Trivial FileTransfer Protocol,简单文件传输协议)


- TLS安全传输层协议SSL
- 简单网络管理协议(SNMP)

- DNS(Domain NameSystem,域名系统)
- 解析(resolve)
- 域名服务器程序
- 域名(英语:DomainName)
- 等级
- localhost
- 标号(label)序列
- 长度
- DNS缓存
- 浏览器 输入qqbrowser://net-internals/#dns
- hosts文件
- DNS劫持 DNS污染

HTTPHyperTextTransferProtocol(超文本传输协议)

image.png 版本image.png
- 参考

HTTP报文结构

  • 开始行
  • 实体主体(entity body)

计算机网络computer network* - 图8

HTTP首部行

|
- host主机名
- Referrer Policy
https://www.cnblogs.com/caixw/p/referrer-policy.html
- Connection: keep-alive
- User-Agent用户代理好像就是UA标识 手机上见过
- Accept-Ranges: bytes Content-Range: bytes 0-9/100
- Transfer-Encoding:chunked
|
- Origin
- Referer
- DNT (Do Not Track)禁止跟踪用法
0表示用户愿意目标站点追踪用户个人信息。
1表示用户不愿意目标站点追踪用户个人信息。
作用 |
- 请求标头headers
image.png
- 响应标头headers
image.png | | —- | —- | —- | |
- Cookie Set-Cookie
- N/A NotApplicable不适用,发送就不带上了 但是你可以看
- 属性

| Accept 系列字段
- Accept允许数据格式
- text: text/html, text/plain, text/css
- image: image/gif, image/jpeg, image/png 等
- audio/video: audio/mpeg, video/mp4 等
- application: application/json, application/javascript, application/pdf, application/octet-stream
- Accept-Encoding允许压缩方式
- gzip: 当今最流行的压缩格式
- deflate: 另外一种著名的压缩格式
- br: 一种专门为 HTTP 发明的压缩算法
Accept-Languagezh-CN, zh, en允许语言
相对品质因子q=0.8 默认为1
Accept-Charset: charset=utf-8允许字符集 |
- Content系列字段
- Content-Type 数据格式 字符集
- Content-Language 支持语言zh-CN, zh, en
- Content-Encoding 压缩方式
- Content-Length 数据长度
- 参考
|

请求行(Request-Line)

|
- 请求方法
image.png
- GETPOST区别
image.png
- 缓存 GET会被存到历史记录里面

|

- URI(Uniform Resource Identifier)统一资源标识符
计算机网络computer network* - 图13
- URLUniformResourceLocator(统一资源定位符)
- 格式[协议类型]://[服务器地址]:[端口号]/[资源层级UNIX文件路径][文件名]?[查询]#[片段ID]
- image.png
- URNUniformResourceName(统一资源命名)
- 参考
- https://www.jianshu.com/p/6033bf05afb9
- URL编码%16进制ASII两个
| | | —- | —- | —- |

状态行(Status-Line)

|
- 状态代码5大类共33种(见RFC 2616)
image.png
- 1xx: 表示目前是协议处理的中间状态,还需要后续操作。
- 2xx: 表示成功状态。
- 3xx: 重定向状态,资源位置发生变动,需要重新请求。
- 4xx: 请求报文有误。
- 5xx: 服务器端发生错误。
| | | | —- | —- | —- |

HTTPS Hyper Text Transfer Protocol over SecureSocket Layer

  • SSL安全套接层SecureSocketsLayer
  • TLS传输层安全协议TransportLayerSecurity
  • SSL1.0>SSL2.0>SSL3.0>TLS1.0>TLS1.1>TLS1.2 |



    |
    - 数字证书
    - 根证书
    | | | —- | —- | —- |