socket——基础之TCP/IP协议栈及OSI参考模型

OSI参考模型

OSI RM:开放系统互连参考模型(open systeminterconnection reference model)

OSI参考模型具有以下优点:

简化了相关的网络操作;

提供设备间的兼容性和标准接口;

促进标准化工作;

结构上可以分隔;

易于实现和维护。

在这里插入图片描述

OSI七层功能:

应用层:提供应用程序间通信
表示层: 处理数据格式、数据加密等
会话层: 建立、维护和管理会话

传输层: 建立主机端到端的连接

网络层: 寻址、路由选择
数据链路层: 提供介质访问、链路管理等
物理层: 比特流传输

TCP/IP协议栈

在这里插入图片描述
由于OSI模型和协议比较复杂,所以并没有得到广泛的应用。

而TCP/IP(transfer control protocol/internet protocol,传输控制协议/网际协议)模型因其开放性和易用性在实践中得到了广泛的应用,TCP/IP协议栈也成为互联网的主流协议。
在这里插入图片描述

1.TCP/IP模型各个层次分别对应于不同的协议。

TCP/IP协议栈是数据通信协议的集合 ,包含许多协议。
其协议栈名字来源于其中最主要的两个协议TCP(传输控制协议)和IP(网际协议)。
TCP/IP协议栈负责确保网络设备之间能够通信。它是一组规则,规定了信息如何在网络中传输。

2.层间通信和数据封装

在这里插入图片描述
每层:让数据得以通过网络 传输
层间:PDU(prototol data unit )(协议 数据 单元)交换信息
在这里插入图片描述
1.传输层数据+TCP报头 = PDU(segment)数据段 传输层
2.数据段 + IP报头 = PDU(packet) 数据包 网络层
3.数据包 + 数据链路层报头 = PDU(frame) 数据帧 数据链路层
4.帧 – 比特 (网络介质 传输)

封装: 协议栈向下传输数据 、 添加报头 报尾 、
去封装: 向上

3.物理层

物理层功能:

规定介质类型、接口类型、信令类型;

规范在终端系统之间激活、维护和关闭物理链路的电气、机械、流程和功能等方面的要求;

规范电平、数据速率、最大传输距离和物理接头等特征。

物理层标准规定了物理介质和用于将设备与物理介质相连的接头。

物理层介质:

同轴电缆(coaxical cable)

双绞线(twisted pair)

光纤(fiber)

无线电波(wireless raido)

物理层设备:中继器和集线器

4.数据链路层

MAC子层 + LLC子层

MACSub-layer:media access controlsub-layer介质访问控制子层

MAC子层负责指定数据如何通过物理线路进行传输,并向下与物理层通信,
它定义了物理编址、网络拓扑、线路规范、错误通知、按序传递和流量控制等功能。

LLCSub-layer:logic link control sub-layer逻辑链路控制子层

LLC子层负责识别协议类型并对数据进行封装以便通过网络进行传输。
LLC子层主要执行数据链路层的大部分功能和网络层的部分功能。
如帧的收发功能,
在发送时,帧由发送的数据加上地址和CRC校验等构成,
接收时将帧拆开,执行地址识别、CRC校验,
并具有帧顺序控制、差错控制、流量控制等功能。
此外,它还执行数据报、虚电路、多路复用等部分网络层的功能。

数据链路层协议

在这里插入图片描述
数据链路层协议规定了数据链路层帧的封装方式。

     局域网常用的数据链路层协议有IEEE802.2 LLC标准。

     广域网常用的数据链路层协议有:

          HDLC(high-level data link control,高级数据链路控制)

          PPP(point-to-point protocol,点到点协议)

          FR(frame relay,帧中继)

数据链路层-以太网地址(MAC地址)

在这里插入图片描述

网络设备的MAC地址是全球唯一的。
MAC地址由48个二进制位组成,通常我们用十六进制数字来表示。
其中前6位十六进制数字由IEEE统一分配给设备制造商,
后6位十六进制数字由厂商自行分配。

5.网络层

在不同的网络之间转发数据包

提供逻辑地址,如果数据跨网络传递,则需要使用逻辑地址来寻址。

路由:将数据报文从一个网络转发到另一个网络。

设备:路由器、三层交换机

网络层协议

在这里插入图片描述

常用网络层协议有:
   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地址。

网络层地址:网络地址在网络层唯一标识一台网络设备。

网络地址包含两部分:网络ID+主机ID(下节主要内容)

6.传输层

主要功能:

分段上层数据;

建立端到端连接;

将数据从一端主机传送到另一端主机;

保证数据按序、可靠、正确传输。

传输层协议:在这里插入图片描述

传输层协议主要包含
传输控制协议TCP(transfer control protocol)和
用户数据报文协议UDP(user datagram protocol)

在这里插入图片描述

7.TCP协议栈封装过程

在这里插入图片描述

7.1 数据报

在这里插入图片描述

7.2 TCP首部格式在这里插入图片描述

唯一确定一个TCP连接:
TCP段都包含源 + 目的端的端口号,用于寻找发端和收端应用进程。
IP首部中的源端IP地址 + 目的端IP地址

32位序列号:用于标识从TCP发端向TCP收端发送的数据字节流。

32位确认序列号:确认序列号包含发送确认的一端所期望收到的下一个序号。确认序列号为上次成功收到的数据序列号加1。

4位首部长度:表示首部占32bit字的数目。因为TCP首部的最大长度为60字节。

16位窗口大小:表示接收端期望接收的字节,由于该字段为16位,因而窗口大小最大值为65535字节。

16位检验和:检验和覆盖了整个TCP报文段,包括TCP首部和TCP数据。该值由发端计算和存储并由接收端进行验证。

7.3 TCP的三次握手(建立连接)和四次挥手(断开连接)

TCP连接的建立是一个三次握手的过程
在这里插入图片描述
TCP连接的终止则要经过四次握手:
在这里插入图片描述

7.4 TCP滑动窗口机制:

在这里插入图片描述

TCP滑动窗口技术通过动态改变窗口大小
——来调节两台主机间的数据传输。

每个TCP/IP主机支持全双工数据传输
因此TCP有两个滑动窗口:
一个用于接收数据,
另一个用于发送数据。
TCP使用肯定确认技术,其确认号指的是下一个所期待的字节。

以数据单方向发送为例,介绍滑动窗口如何实现流量控制。

服务器端向客户端发送4个大小为1024字节的数据段,其中发送端的窗口大小为4096,
客户端到以ACK4097响应,窗口大小调整为2048,

表明客户端(即接收端)缓冲区只能处理2048个字节的数据段。
于是发送端改变其发送速率。发送接收端能够接收的数据段大小2048的数据段。

7.5 UDP协议概述

UDP首部格式
在这里插入图片描述

7.6 IP packet

在这里插入图片描述

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地址信息

7.7 以太网头部

在这里插入图片描述
以太网头部由三个字段组成:

DMAC:表示目的终端MAC地址。

SMAC:表示源端MAC地址。

LENGTH/TYPE字段:根据值的不同有不同的含义:

当LENGHT/TYPE > 1500时,代表该数据帧的类型(比如上层协议类型)

常见的协议类型有:

0X0800 IP数据包

0X0806 ARP请求/应答报文

0X8035 RARP请求/应答报文。

当LENGTH/TYPE < 1500时,代表该数据帧的长度。

7.8 telnet(远程终端协议)

TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。

它为用户提供了在本地计算机上完成远程主机工作的能力。
在终端使用者的电脑上使用telnet程序,用它连接到服务器。
终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行就像直接在服务器的控制台上输入一样。
可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

7.9 代理服务器常用以下端口:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值