计算机网络体系
OSI七层模型
-
应用层
- 允许访问osi环境的手段(应用协议数据单元APDU)
-
表示层
- 对数据进行翻译、加密和压缩(表示协议数据单元 PPDU)
-
会话层
- 建立、管理和终止会话(会话协议数据单元 SPDU)
-
传输层
- 提供端到端的可靠报文传递和错误恢复(段 Segment)
-
网络层
- 负责数据包从源到宿的传递和网际互连(包 PackeT)
-
数据链路层
- 将比特组装成帧和点到点的传递(帧 Frame)
-
物理层
- 通过媒介传输比特,确定机械及电气规范(比特 Bit)
TCP/IP 概念层模型
-
应用层(Application Layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统 DNS,支持万维网应用的 HTTP 协议,支持电子邮件的 SMTP 协议等等
-
传输层(Transport Layer)的主要任务就是 负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。
-
网络层的任务就是选择合适的网间路由和交换结点,确保计算机通信的数据及时传送。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在 TCP/IP 体系结构中,由于网络层使用 IP 协议,因此分组也叫 IP 数据报 ,简称数据报。
-
数据链路层(Data Link Layer)通常简称为链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。 在两个相邻节点之间传送数据时,数据链路层将网络层接下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。
-
在物理层上所传送的数据单位是比特。 物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。 在互联网使用的各种协议中最重要和最著名的就是 TCP/IP 两个协议。
传输层协议
传输层(Transport Layer)的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。
网络协议族中有两个具有代表性的传输层协议,分别是 TCP 和 UDP。
-
传输控制协议 TCP:提供面向连接的,可靠的数据传输服务
-
用户数据协议 UDP:提供无连接的,尽最大努力的数据传输服务(不保证数据传输的可靠性)
tcp
传输控制协议(Transmission Control Protocol,简称 TCP)是一种面向连接(连接导向)的、可靠的、 基于 IP 协议的传输层协议。
-
每一条 TCP 连接只能有两个端点,每一条 TCP 连接只能是一对一
-
TCP 提供可靠交付的服务。通过 TCP 连接传送的数据,无差错、不丢失、不重复、并且按序到达
-
TCP 提供全双工通信。TCP 允许通信双方的应用进程在任何时候都能发送数据。TCP 连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据
-
面向字节流,TCP 中的 流(Stream)指的是流入进程或从进程流出的字节序列
tcp的特点
在 IP 协议之上,解决网络通讯可依赖问题。
-
点对点(不能广播、多播),面向连接
-
双向传递(全双工)
-
字节流:打包成报文段、保证有序接收、重复报文自动丢弃
-
缺点:不维护应用报文的边界(对比 HTTP、GEPC)
-
优点:不强制要求应用必须离散的创建数据块,不限制数据块大小
-
-
流量缓冲:解决速度不匹配问题
-
可靠的传输服务(保证可达,丢包时通过重发进而增加时延实现可靠性)
-
拥塞控制
数据包结构
TCP 首部标志比特有 6 个:URG、ACK、PSH、RST、SYN、FIN
-
URG:紧急指针
-
ACK(Acknowledge):确认序号有效
-
PSH:尽可能快地将数据送往接收进程
-
RST:可能需要重现创建建 TCP 连接
-
SYN(Synchronize):同步序号来发起一个连接
-
FIN(Finnaly):发送方完成发送任务,要求释放连接
其他:
-
序列号(Seq = sequance number)
-
确认号(Ack = acknowledgment number)