OSI七层网络模型
ISO组织定义了七层网络模型
| 应用层 | 提供应用之间的通信 |
|---|---|
| 表示层 | 处理数据格式和数据加密 |
| 会话层 | 建立、维护和管理会话 |
| 传输层 | 建立主机端到端的连接 |
| 网络层 | 寻址和路由选择 |
| 数据链路层 | 介质传输、链路管理 |
| 物理层 | 比特流传输 |
物理层
不管通过什么介质,将信息的二进制传递到另外一个节点,这个过程就是物理层。
数据链路层
将物理层传过来的二进制信号内容进行翻译,翻译的结果被称为数据帧。
物理层被认为是不可靠的(有可能接触不良,有可能电测干扰,有可能闪电风暴),数据链路层通过CRC循环冗余校验生成校验码,放在数据包的后面用来保证数据正确,如果错误则丢弃。
网络层
功能:路由和寻址
- 关键内容
- protocol
- 17:UDP
- 6:TCP
- 源与目的ip地址
- mac地址可以被看作身份证号,ip地址就是当前所在位置。快递小哥通过你的位置找到你,通过你的身份证确认你
- protocol
传输层
端到端连接
- 计算机确定这个数据是给自己的了后,要判断这个数据是什么业务
- 端口号
- 范围时1~65535
- 默认情况下,所有端口都是关闭的,当有程序需要网络通信的时候,就会选择一个端口占用
- 正常情况下,电脑上大多数软件端口号是随机的,因为不需要被访问,只需要回复
- 有些服务是需要被访问的,所以这些访问需要占据固定的众所周知的端口号
- 在电脑上的c:\windows\system32\dreivers\etc\service文件中保存着windows主动访问其他主机时候默认使用的端口号
- http 80/tcp
- ftp 20/tcp 21/tcp
- mstsc 3389/tcp 3389/udp
- dns 54/tcp 53/udp
- telnet 23/tcp
- ssh 22/tcp
- 在cmd中输入netstat -ano可以查看ip地址、端口号、进程号对应的关系
应用层
产生用户数据,为用户提供交互接口。
IP地址
IP地址是32位二进制,方便阅读使用点分十进制。
- IP地址网络位
- 网络位相同表示在同一局域网中
- 局域网有多台设备组成,可以不受控制访问
- 正常情况下,一个公司的部门之间相互隔离受控
- IP地址主机位
- 网络位相同(在同一局域网下),主机位不能重复
- 主机位是为了帮助同一局域网中设备之间进行更高层的通信封装使用
- 网络类型
- A:1.0.0.0 ~ 126.255.255.255 /8
- 127开头作为本地测试地址
- 由于网络位8位,且主机位全0全1的主机号不可分配,所以最大主机数2-2
- B:128.0.0.0 ~ 191.255.255.255 /16
- 网络位16位,主机位16位,最大主机数2-2
- C:192.0.0.0 ~ 223.255.255.255 /24
- 网络位24位,主机位8位,最大主机数2-2
- D类组播没有网络位概念
- E用不到
- A:1.0.0.0 ~ 126.255.255.255 /8
- 子网掩码
- 用于区分网络位和主机位
- 32位二进制,可以和IP地址一一对应。规定子网掩码为1,对应IP地址是网络位;子网掩码为0,对应IP地址为主机位。
私有IP地址
| 私有IP地址空间 | 地址范围 |
|---|---|
| 10.0.0.0 /8 | 10.0.0.0 ~ 10.255.255.255 |
| 172.16.0.0 /12 | 172.16.0.0 ~ 172.31.255.255 |
| 192.168.0.0 /16 | 192.168.0.0 ~ 192.168.255.255 |
私有IP地址空间中的地址不需要申请,随意使用,但是不能在互联网上与合法地址通信
而我们明明用的私有IP地址,也可以上网,因为我们需要先把自己的上网请求提交给网络中的网关
(就是你家的出口路由器),再由网关代替我们去获取内容转交给我们的电脑手机,而网关往往能从
运营商那里得到一个合法的公有IP地址
TCP/UDP
TCP:传输控制协议(Transmission Control Protocol)
- 传输层用来保证数据传输的可靠性,携带基本的端口号。
- 可靠的协议,可以知道数据的丢失和差错信息
UDP:用户数据报协议(User Datagram Protocol)
- 只携带基本的端口号
-
TCP有限状态机

男孩:分手吧(FIN_WAIT_1)
女孩:考虑一下有没有话要说(CLOSE_WAIT),没话说就分手吧(发ACK),等我收拾一下东西
男孩:等女孩收拾东西(FIN_WAIT_2)
女孩:我收拾好了,分手吧(LAST_ACK)
男孩:OK,分手(TIME_WAIT)。
等待2MSL:1. 确保女孩听到自己的回复 2. 确保不会分手后骚扰女孩(1. 万一服务器没收到ACK就无法关闭 2. 防止网络中滞留的报文去骚扰服务器)
数据封装

目前需要知道的基本概念:
- IP地址用于标识网络中的位置,相当于地址,如现实中的 xx 省 xx 市 xx 区 xx路 xx号
- MAC地址是每个网络设备唯一的ID,相当于身份证号
- 如果想要发送数据,必须(暂且认为必须)同时拥有IP和MAC地址
