为什么要分层:
如果没有分层设计,一个厂商需要设计所有通信细节,包含物理层接口与信号编码,地址寻址,传输机制与保障等。分层后可以让更专业的厂商做更专业的事情,把复杂的问题分解成小的简单问题,也使各个厂商之间的设备具有兼容性,层次的划分有利于国际标志协议的制定。
OSI七层模型:
APDU 应用层 提供应用程序通信
PPDU 表示层 处理数据格式、数据加密等
SPDU 会话层 建立、维护和管理会话
Segment 传输层 建立主机端到端连接
Packet 网络层 寻址和路由选择
Frame 数据链路层 提供介质访问、链路管理等
Bit 物理层 比特流传输
TCP/IP模型
telnet,FTP和e-mail 应用层 处理特定的应用程序细节
TCP和UDP 传输层 为两台主机上的应用程序提供端到端的通讯
IP,ICMP和IGMP 网络层 处理分组在网络中的活动,例如分组选路
设备驱动程序及接口卡 数据链路层 处理与电缆的物理接口细节
TCP/IP不同层次的协议:
网络IP提供的是一种不可靠的服务,可靠性由传输层的TCP提供。
TCP使用不可靠的IP服务,并提供一种可靠的运输层服务。
UDP为应用程序发送和接收数据报,和TCP不同,UDP是不可靠的。但是UDP也有UDP的好处,有些应用必须使用UDP来提供服务(即时语音等)。
IP是网络层上的主要协议,同时被TCP和UDP使用。
ICMP和IGMP是IP协议的附属协议。
封装:
以太网数据帧的物理特性使其长度必须在46~1500字节之间
以太网的帧首部也有一个16bit的帧类型域(ip,arp,rarp)(以太网协议号)
IP在首部中存入一个长度为8bit的数值,称作协议域(icmp,igmp,tcp,udp,esp,gre)(IP协议号)
TCP和UDP都用一个16bit的端口号来表示不同的应用程序(ftp,telnet,http)
每层首部都带有标识下个头部是什么。
最基本协议号端口号:
以太网协议号:
(IP:0x0800 | ARP:0x0806| PPPOE:0x8863 0x8864)
IP协议号
(ICMP:1 | TCP:6 | UDP:17 | GRE:47|ESP:50 |AH:51)
端口号
TCP TFTP:20 21 | SSH:22 | Telnet:23 | SMTP:25 | TACACS+:49 | HTTP:80
| HTTPS:443 |
UDP IKE:500 | Radius: 1645 1646 1812 1813
分用:
当收到一个数据帧,通过以太网协议号来识别交给哪个协议,然后在根据IP协议号来识别交给上层哪个协议,最后根据端口号来识别交给哪个应用程序。
端口号:
服务器一般都使通过知名端口号来识别的(ftp 21,telnet 23)
客户端口号又称临时端口号(即存在时间很短暂)
大多数TCP/IP实现给临时端口分配1024~5000之间的端口号。
大于5000的端口号使为其它服务器预留的(internet上并不常用的服务)
大多数知名端口为奇数的由来:
TCP的前身使NCP(网络控制协议),NCP是单工,不是全双工,因此每个应用程序需要两个连接。需要预留一对奇数偶数端口号。当TCP和UDP成为标准的传输层协议时,每个应用程序只需要一个端口号,因此就使用了NCP中的奇数。(HTTP例外,是因为它并不是最老一批网络协议)