OSI RM:开放系统互连参考模型(open systeminterconnection reference model)
简化了相关的网络操作;
提供设备间的兼容性和标准接口;
促进标准化工作;
结构上可以分隔;
易于实现和维护。
应用层:提供应用程序间通信
表示层: 处理数据格式、数据加密等
会话层: 建立、维护和管理会话
传输层: 建立主机端到端的连接
网络层: 寻址、路由选择
数据链路层: 提供介质访问、链路管理等
物理层: 比特流传输
而TCP/IP(transfer control protocol/internet protocol,传输控制协议/网际协议)模型因其开放性和易用性在实践中得到了广泛的应用,TCP/IP协议栈也成为互联网的主流协议。
TCP/IP协议栈是数据通信协议的集合 ,包含许多协议。
其协议栈名字来源于其中最主要的两个协议TCP(传输控制协议)和IP(网际协议)。
TCP/IP协议栈负责确保网络设备之间能够通信。它是一组规则,规定了信息如何在网络中传输。
每层:让数据得以通过网络 传输
层间:PDU(prototol data unit )(协议 数据 单元)交换信息
1.传输层数据+TCP报头 = PDU(segment)数据段 传输层
2.数据段 + IP报头 = PDU(packet) 数据包 网络层
3.数据包 + 数据链路层报头 = PDU(frame) 数据帧 数据链路层
4.帧 – 比特 (网络介质 传输)
封装: 协议栈向下传输数据 、 添加报头 报尾 、
去封装: 向上
物理层功能:
规定介质类型、接口类型、信令类型;
规范在终端系统之间激活、维护和关闭物理链路的电气、机械、流程和功能等方面的要求;
规范电平、数据速率、最大传输距离和物理接头等特征。
物理层标准规定了物理介质和用于将设备与物理介质相连的接头。
同轴电缆(coaxical cable)
双绞线(twisted pair)
光纤(fiber)
无线电波(wireless raido)
MAC子层 + LLC子层
MAC子层负责指定数据如何通过物理线路进行传输,并向下与物理层通信,
它定义了物理编址、网络拓扑、线路规范、错误通知、按序传递和流量控制等功能。
LLC子层负责识别协议类型并对数据进行封装以便通过网络进行传输。
LLC子层主要执行数据链路层的大部分功能和网络层的部分功能。
如帧的收发功能,
在发送时,帧由发送的数据加上地址和CRC校验等构成,
接收时将帧拆开,执行地址识别、CRC校验,
并具有帧顺序控制、差错控制、流量控制等功能。
此外,它还执行数据报、虚电路、多路复用等部分网络层的功能。
局域网常用的数据链路层协议有IEEE802.2 LLC标准。
广域网常用的数据链路层协议有:
HDLC(high-level data link control,高级数据链路控制)
PPP(point-to-point protocol,点到点协议)
FR(frame relay,帧中继)
网络设备的MAC地址是全球唯一的。
MAC地址由48个二进制位组成,通常我们用十六进制数字来表示。
其中前6位十六进制数字由IEEE统一分配给设备制造商,
后6位十六进制数字由厂商自行分配。
在不同的网络之间转发数据包
提供逻辑地址,如果数据跨网络传递,则需要使用逻辑地址来寻址。
路由:将数据报文从一个网络转发到另一个网络。
设备:路由器、三层交换机
IP(Internet Protocol):IP为网络层最主要的协议,其功能即为网络层的主要功能,
一是提供逻辑编址,
二是提供路由功能,
三是报文的封装和解封装。
ICMP、ARP、RARP协议辅助IP工作。
ICMP(Internet Control Message Protocol)是一个管理协议并为IP提供信息服务,ICMP消息承载在IP报文中。
ARP(Address Resolution Protocol)实现IP地址到硬件地址的动态映射,即根据已知的IP地址获得相应的硬件地址。
RARP(Reverse Address Resolution Protocol)实现硬件地址到IP地址的动态映射,即根据已知的硬件地址获得相应的IP地址。
网络层地址:网络地址在网络层唯一标识一台网络设备。
主要功能:
分段上层数据;
建立端到端连接;
将数据从一端主机传送到另一端主机;
保证数据按序、可靠、正确传输。
传输层协议主要包含
传输控制协议TCP(transfer control protocol)和
用户数据报文协议UDP(user datagram protocol)
唯一确定一个TCP连接:
TCP段都包含源 + 目的端的端口号,用于寻找发端和收端应用进程。
IP首部中的源端IP地址 + 目的端IP地址
32位序列号:用于标识从TCP发端向TCP收端发送的数据字节流。
32位确认序列号:确认序列号包含发送确认的一端所期望收到的下一个序号。确认序列号为上次成功收到的数据序列号加1。
4位首部长度:表示首部占32bit字的数目。因为TCP首部的最大长度为60字节。
16位窗口大小:表示接收端期望接收的字节,由于该字段为16位,因而窗口大小最大值为65535字节。
16位检验和:检验和覆盖了整个TCP报文段,包括TCP首部和TCP数据。该值由发端计算和存储并由接收端进行验证。
TCP连接的建立是一个三次握手的过程
TCP连接的终止则要经过四次握手:
TCP滑动窗口技术通过动态改变窗口大小
——来调节两台主机间的数据传输。
每个TCP/IP主机支持全双工数据传输
因此TCP有两个滑动窗口:
一个用于接收数据,
另一个用于发送数据。
TCP使用肯定确认技术,其确认号指的是下一个所期待的字节。
以数据单方向发送为例,介绍滑动窗口如何实现流量控制。
服务器端向客户端发送4个大小为1024字节的数据段,其中发送端的窗口大小为4096,
客户端到以ACK4097响应,窗口大小调整为2048,
表明客户端(即接收端)缓冲区只能处理2048个字节的数据段。
于是发送端改变其发送速率。发送接收端能够接收的数据段大小2048的数据段。
IP头部固定长度为20个字节(不包含IP选项字段)。
IP报文头主要由以下字段组成:
报文长度 是指头部占32比特字的个数,包括任何选项。由于它是一个4比特字段,24=16,除掉全0项共有15个有效值比特字段,其中最大值也为15,表示头部占15个32比特。因此32*15/8=60字节,头部最长为60字节。
版本号(Version)字段标明了IP协议的版本号,目前的协议版本号为4。下一代IP协议的版本号为6。
服务类型(TOS,Type of Service)8比特 字段包括一个3比特的优先权字段(COS,Class of Service),4比特TOS字段和1比特未用位。4比特TOS分别代表最小时延、最大吞吐量、最高可靠性和最小费用。
总长度(Total length)是整个IP数据报长度,包括数据部分。由于该字段长16比特,所以IP数据报最长可达65535字节。尽管可以传送一个长达65535字节的IP数据报,但是大多数的链路层都会对它进行分片。而且,主机也要求不能接收超过576字节的数据报。UDP限制用户数据报长度为512字节,小于576字节。而事实上现在大多数的实现(特别是那些支持网络文件系统NFS的实现)允许超过8192字节的IP数据报。
标识符(Identification)字段唯一地标识主机发送的每一份数据包。通常每发送一份报文它的值就会加1。
生存时间(TTL,Time to Live)字段设置了数据包可以经过的路由器数目。
一旦经过一个路由器,TTL值就会减1,当该字段值为0时,数据包将被丢弃。
协议字段确定在数据包内传送的上层协议,和端口号类似,IP协议用协议号区分上层协议。
TCP协议的协议号为6,UDP协议的协议号为17。
报头校验和(Head checksum)字段计算IP头部的校验和,检查报文头部的完整性。
源IP地址和目的IP地址字段标识数据包的源端设备和目的端设备IP地址信息。
DMAC:表示目的终端MAC地址。
SMAC:表示源端MAC地址。
LENGTH/TYPE字段:根据值的不同有不同的含义:
当LENGHT/TYPE > 1500时,代表该数据帧的类型(比如上层协议类型)
常见的协议类型有:
0X0800 IP数据包
0X0806 ARP请求/应答报文
0X8035 RARP请求/应答报文。
当LENGTH/TYPE < 1500时,代表该数据帧的长度。
TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。
它为用户提供了在本地计算机上完成远程主机工作的能力。
在终端使用者的电脑上使用telnet程序,用它连接到服务器。
终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。
可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。
HTTP协议代理服务器常用端口号80/8080/3128/8081/9080
SOCKS代理协议服务器常用端口号1080
FTP文件传输协议代理服务器常用端口号21
Telnet远程登录协议代理服务器常用端口23
HTTP服务器默认的端口号为80/tcp木马Executor开放此端口
HTTPSsecurely transferring web pages服务器默认的端口号为443/tcp 443/udp
Telnet不安全的文本传送默认端口号为23/tcp木马Tiny Telnet Server所开放的端口
FTP默认的端口号为21/tcp木马Doly Trojan、Fore、InvisibleFTP、WebEx、WinCrash和Blade Runner所开放的端口
TFTPTrivial File Transfer Protocol 默认的端口号为69/udp
SSH安全登录、SCP文件传输、端口重定向默认的端口号为22/tcp
SMTP Simple Mail Transfer Protocol (E-mail)默认的端口号为25/tcp木马Antigen、EmailPassword Sender、Haebu Coceda、ShtrilitzStealth、WinPC、WinSpy都开放这个端口
POP3 Post Office Protocol (E-mail) 默认的端口号为110/tcp
WebLogic默认的端口号为7001
Webshpere应用程序默认的端口号为9080
webshpere管理工具默认的端口号为9090
JBOSS默认的端口号为8080
TOMCAT默认的端口号为8080
WIN2003远程登陆默认的端口号为3389
Symantec AV/Filter for MSE ,默认端口号为8081 Oracle 数据库默认的端口号为1521
ORACLE EMCTL默认的端口号为1158
Oracle XDB XML 数据库默认的端口号为8080
Oracle XDB FTP服务默认的端口号为2100
MS SQL*SERVER数据库server默认的端口号为1433/tcp 1433/udp
MS SQL*SERVER数据库monitor默认的端口号为1434/tcp 1434/udp
QQ默认的端口号为1080/udp