一.TCP/IP 协议族体系结构以及主要协议
TCP/IP协议族是一个才四层协议系统。
数据链路层:实现了网卡接口的网络驱动程序,以处理数据在物理媒介(比如以太网,令牌网等)上的传输。数据链路层两个常用的协议是ARP协议(Address Resolve Protocol,地址解析协议)和
RARP协议(Revers Address Resovle Protocol,逆地址解析协议)。实现了IP地址与物理地址的转换。
网络层:实现数据包的选路和转发。网络层有两个主要的协议:IP协议(Internet Protocol,因特网协议)和ICMP协议(Internet Control Message Protocol,因特网控制报文协议),其中IP协议最为核心。
传输层:为两台主机上的应用程序提供端到端的通信。传输层主要有三个主要的协议:TCP协议,UDP协议,SCTP协议。
应用层:负责处理应用程序的逻辑。应用层主要在用户空间实现,负责处理众多逻辑:如文件,名称查询和网络管理等。
二. 封装
应用程序发送到物理网络上之前,将沿着协议栈从上往下依次传递。
经过TCP封装后的数据称为TCP报文段,简称TCP段。同样也有UDP数据报,IP数据报。经过数据链路层封装的数据称为帧(frame)。
以太网帧使用6字节的目的物理地址和6字节的源物理地址来表示通信的双方。
帧才是最终在物理网络上传输的字节序列。
三.分用
当帧到达目的主机后,沿着协议栈自底向上一次传递。分用是依靠头部信息中的类型字段实现的。
IP协议,ARP协议和RARP协议都是帧传输数据。帧的头部需要字段来区分它们。如以太网帧字段类型的值为:
0x8000,则帧的数据部分为IP数据报,以太网程序就将帧交付给IP模块。
0x806,则为ARP请求或应答报文。
0x835,为RARP请求或应答程序。
帧分用以后,最终到达将封装前的原始数据送到目标服务。
四. 端口
众所周知端口(Well know ports):从0到1023,这些端口由IANA分配和控制它们绑定一些服务。
注册端口(Registered Ports):从1024到49151,这些端口不受IANA控制,但由IANA登记并提供使用清单。如:1433 Microsoft SQL服务器端口。
动态或私有端口(Dynamic or Private Ports):从49152到65535.IANA不管这些端口。