物理层
传输原始比特流的物理连接(1bit等于一个二进制位, 1byte=8bit=8个二进制位, 1byte=1字节)
数据链路层
把物理层上传输的比特流分组, 一组称为一个以太网数据包, 又叫帧(Frame). 每一帧分成两个部分: 标头(Head)和数据(Data).
"标头"包含数据包的一些说明项, 比如发送者和接受者的MAC地址, 数据类型等等; "数据"则是数据包的具体内容.
"标头"的长度, 固定为18字节. "数据"的长度, 最短为46字节, 最长为1500字节. 因此, 整个"帧"最短为64字节, 最长为1518字节. 如果数据很长, 就必须分割成多个帧进行发送.
数据链路层的作用是把以太网数据包从一个物理地址传输到另一个物理地址.
网络层
它引进一套新的地址, 即IP地址, 主要功能是根据ARP协议将网络地址(IP地址)翻译成对应的物理地址(MAC地址), 并决定数据从一个网络中节点A到另一个网络中节点B传输时的最佳路径(即路由路径).
在网络层传输的数据包叫做IP数据包, 也分为"标头"和"数据"两个部分. "标头"部分主要包括版本, 长度, IP地址等信息, "数据"部分则是IP数据包的具体内容.
IP数据包"标头"部分的长度为20到60字节, 整个数据包的总长度最大为65,535字节. 因此, 理论上一个IP数据包的"数据"部分最长为65,515字节.
传输的时候是把整个IP数据包放进以太网数据包的"数据"体内. 前面说过, 以太网数据包的"数据"部分, 最长只有1500字节. 因此, 如果IP数据包超过了1500字节, 它就需要分割成几个以太网数据包, 分开发送了.
ARP协议: 从IP地址(已知)取得对应的MAC地址(未知)的协议. ARP协议也是发出一个数据包(包含在以太网数据包中), 其中包含它所要查询主机的IP地址, 在对方的MAC地址这一栏, 填的是FF:FF:FF:FF:FF:FF, 表示这是一个"广播"地址. 它所在子网络的每一台主机, 都会收到这个数据包, 从中取出IP地址, 与自身的IP地址进行比较. 如果两者相同, 都做出回复, 向对方报告自己的MAC地址, 否则就丢弃这个包.
传输层
传输层提供"端口到端口"的数据传输的机制(网络层是"主机到主机"的传输). 只要确定主机和端口, 我们就能实现应用程序之间的交流. (因此, Unix系统就把主机+端口, 叫做"套接字"(socket)).
传输层的协议主要有两个: UDP协议(无状态的传送协议), TCP协议(有状态的传输协议).
UDP协议:
UDP协议的优点是比较简单, 容易实现, 但是缺点是可靠性较差, 一旦数据包发出, 无法知道对方是否收到.
在UDP协议下传输的数据包叫做UDP数据包, 也是由"标头"和"数据"两部分组成.
"标头"部分主要定义了发出端口和接收端口, 一共只有8个字节, "数据"部分总长度不超过65,535字节, 正好放进一个IP数据包.
TCP协议:
TCP协议每发出一个数据包都要求确认. 如果有一个数据包遗失, 就收不到确认, 发出方就知道有必要重发这个数据包了. 因此, TCP协议能够确保数据不会遗失.
TCP数据包和UDP数据包的结构一样, 而且都是内嵌在IP数据包的"数据"部分进行传输.
TCP数据包没有长度限制, 理论上可以无限长, 但是为了保证网络的效率, 通常TCP数据包的长度不会超过IP数据包的长度, 以确保单个TCP数据包不必再分割.
会话层
会话层管理主机之间的会话进程, 即负责建立, 管理, 终止进程之间的会话. 会话层的功能包括:建立通信链接, 保持会话过程通信链接的畅通, 同步两个节点之间的对话, 决定通信是否被中断以及通信中断时决定从何处重新发送. 会话层还利用在数据中插入校验点来实现数据的同步.
表示层
表示层负责把源端应用程序的数据转换成一定的格式, 以保证数据在传输到目的端时也能被识别. 如对数据进行加密和解密, 或对图片和文件格式进行编码和解码. 这种格式因所使用网络的不同而不同.
加密分为链路加密和端到端的加密. 表示层属于端到端的加密, 指信息由发送端自动加密, 并进入TCP/IP数据包封装, 然后作为不可阅读和不可识别的数据进入互联网. 到达目的地后, 再自动解密, 成为可读数据. 端到端加密面向网络高层主体, 不对下层协议进行信息加密, 协议信息以明文进行传送, 用户数据在中央节点不需解密.
应用层
"应用层"的作用, 就是规定各种应用程序的数据格式. 举例来说, TCP协议可以为各种各样的程序传递数据, 比如Email, HTTP, FTP等等. 那么, 必须有不同协议规定电子邮件, 网页, FTP数据的格式, 这些应用程序协议就构成了"应用层".
总结:
物理层:主要定义物理设备标准, 如网线的接口类型, 光纤的接口类型, 各种传输介质的传输速率等. 它的主要作用是传输比特流(就是由1, 0转化为电流强弱来进行传输,到达目的地后在转化为1, 0, 也就是我们常说的模数转换与数模转换). 这一层的数据叫做比特.
数据链路层:主要将从物理层接收的数据进行MAC地址(网卡的地址)的封装与解封装. 常把这一层的数据叫做帧. 在这一层工作的设备是交换机, 数据通过交换机来传输.
网络层:主要将从下层接收到的数据进行IP地址(例192.168.0.1)的封装与解封装. 在这一层工作的设备是路由器, 常把这一层的数据叫做数据包.
传输层:定义了一些传输数据的协议和端口号, 如:TCP(传输控制协议, 传输效率低, 可靠性强, 用于传输可靠性要求高, 数据量大的数据), UDP(用户数据报协议, 与TCP特性恰恰相反, 用于传输可靠性要求不高, 数据量小的数据, 如QQ聊天数据就是通过这种方式传输的). 主要是将从下层接收的数据进行分段进行传输, 到达目的地址后在进行重组. 常常把这一层数据叫做段.
会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路. 主要在进程之间发起会话或接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)
表示层:主要是进行对接收的数据进行编码与解码, 加密与解密, 压缩与解压缩等(也就是把计算机能够识别的东西转换成人能够能识别的东西, 如图片, 声音等)
应用层:主要是一些终端的应用所使用的协议, 比如说FTP, HTTP, Email, DHCP等.
网络七层的底三层(物理层, 数据链路层和网络层)通常被称作媒体层, 它们不为用户所见, 默默地对网络起到支撑作用, 是网络工程师所研究的对象. 上四层(传输层, 会话层, 表示层和应用层)则被称作主机层, 是用户所面向和关心的内容, 这些程序常常将各层的功能综合在一起, 在用户面前形成一个整体.
传输原始比特流的物理连接(1bit等于一个二进制位, 1byte=8bit=8个二进制位, 1byte=1字节)
数据链路层
把物理层上传输的比特流分组, 一组称为一个以太网数据包, 又叫帧(Frame). 每一帧分成两个部分: 标头(Head)和数据(Data).
"标头"包含数据包的一些说明项, 比如发送者和接受者的MAC地址, 数据类型等等; "数据"则是数据包的具体内容.
"标头"的长度, 固定为18字节. "数据"的长度, 最短为46字节, 最长为1500字节. 因此, 整个"帧"最短为64字节, 最长为1518字节. 如果数据很长, 就必须分割成多个帧进行发送.
数据链路层的作用是把以太网数据包从一个物理地址传输到另一个物理地址.
网络层
它引进一套新的地址, 即IP地址, 主要功能是根据ARP协议将网络地址(IP地址)翻译成对应的物理地址(MAC地址), 并决定数据从一个网络中节点A到另一个网络中节点B传输时的最佳路径(即路由路径).
在网络层传输的数据包叫做IP数据包, 也分为"标头"和"数据"两个部分. "标头"部分主要包括版本, 长度, IP地址等信息, "数据"部分则是IP数据包的具体内容.
IP数据包"标头"部分的长度为20到60字节, 整个数据包的总长度最大为65,535字节. 因此, 理论上一个IP数据包的"数据"部分最长为65,515字节.
传输的时候是把整个IP数据包放进以太网数据包的"数据"体内. 前面说过, 以太网数据包的"数据"部分, 最长只有1500字节. 因此, 如果IP数据包超过了1500字节, 它就需要分割成几个以太网数据包, 分开发送了.
ARP协议: 从IP地址(已知)取得对应的MAC地址(未知)的协议. ARP协议也是发出一个数据包(包含在以太网数据包中), 其中包含它所要查询主机的IP地址, 在对方的MAC地址这一栏, 填的是FF:FF:FF:FF:FF:FF, 表示这是一个"广播"地址. 它所在子网络的每一台主机, 都会收到这个数据包, 从中取出IP地址, 与自身的IP地址进行比较. 如果两者相同, 都做出回复, 向对方报告自己的MAC地址, 否则就丢弃这个包.
传输层
传输层提供"端口到端口"的数据传输的机制(网络层是"主机到主机"的传输). 只要确定主机和端口, 我们就能实现应用程序之间的交流. (因此, Unix系统就把主机+端口, 叫做"套接字"(socket)).
传输层的协议主要有两个: UDP协议(无状态的传送协议), TCP协议(有状态的传输协议).
UDP协议:
UDP协议的优点是比较简单, 容易实现, 但是缺点是可靠性较差, 一旦数据包发出, 无法知道对方是否收到.
在UDP协议下传输的数据包叫做UDP数据包, 也是由"标头"和"数据"两部分组成.
"标头"部分主要定义了发出端口和接收端口, 一共只有8个字节, "数据"部分总长度不超过65,535字节, 正好放进一个IP数据包.
TCP协议:
TCP协议每发出一个数据包都要求确认. 如果有一个数据包遗失, 就收不到确认, 发出方就知道有必要重发这个数据包了. 因此, TCP协议能够确保数据不会遗失.
TCP数据包和UDP数据包的结构一样, 而且都是内嵌在IP数据包的"数据"部分进行传输.
TCP数据包没有长度限制, 理论上可以无限长, 但是为了保证网络的效率, 通常TCP数据包的长度不会超过IP数据包的长度, 以确保单个TCP数据包不必再分割.
会话层
会话层管理主机之间的会话进程, 即负责建立, 管理, 终止进程之间的会话. 会话层的功能包括:建立通信链接, 保持会话过程通信链接的畅通, 同步两个节点之间的对话, 决定通信是否被中断以及通信中断时决定从何处重新发送. 会话层还利用在数据中插入校验点来实现数据的同步.
表示层
表示层负责把源端应用程序的数据转换成一定的格式, 以保证数据在传输到目的端时也能被识别. 如对数据进行加密和解密, 或对图片和文件格式进行编码和解码. 这种格式因所使用网络的不同而不同.
加密分为链路加密和端到端的加密. 表示层属于端到端的加密, 指信息由发送端自动加密, 并进入TCP/IP数据包封装, 然后作为不可阅读和不可识别的数据进入互联网. 到达目的地后, 再自动解密, 成为可读数据. 端到端加密面向网络高层主体, 不对下层协议进行信息加密, 协议信息以明文进行传送, 用户数据在中央节点不需解密.
应用层
"应用层"的作用, 就是规定各种应用程序的数据格式. 举例来说, TCP协议可以为各种各样的程序传递数据, 比如Email, HTTP, FTP等等. 那么, 必须有不同协议规定电子邮件, 网页, FTP数据的格式, 这些应用程序协议就构成了"应用层".
总结:
物理层:主要定义物理设备标准, 如网线的接口类型, 光纤的接口类型, 各种传输介质的传输速率等. 它的主要作用是传输比特流(就是由1, 0转化为电流强弱来进行传输,到达目的地后在转化为1, 0, 也就是我们常说的模数转换与数模转换). 这一层的数据叫做比特.
数据链路层:主要将从物理层接收的数据进行MAC地址(网卡的地址)的封装与解封装. 常把这一层的数据叫做帧. 在这一层工作的设备是交换机, 数据通过交换机来传输.
网络层:主要将从下层接收到的数据进行IP地址(例192.168.0.1)的封装与解封装. 在这一层工作的设备是路由器, 常把这一层的数据叫做数据包.
传输层:定义了一些传输数据的协议和端口号, 如:TCP(传输控制协议, 传输效率低, 可靠性强, 用于传输可靠性要求高, 数据量大的数据), UDP(用户数据报协议, 与TCP特性恰恰相反, 用于传输可靠性要求不高, 数据量小的数据, 如QQ聊天数据就是通过这种方式传输的). 主要是将从下层接收的数据进行分段进行传输, 到达目的地址后在进行重组. 常常把这一层数据叫做段.
会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路. 主要在进程之间发起会话或接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)
表示层:主要是进行对接收的数据进行编码与解码, 加密与解密, 压缩与解压缩等(也就是把计算机能够识别的东西转换成人能够能识别的东西, 如图片, 声音等)
应用层:主要是一些终端的应用所使用的协议, 比如说FTP, HTTP, Email, DHCP等.
网络七层的底三层(物理层, 数据链路层和网络层)通常被称作媒体层, 它们不为用户所见, 默默地对网络起到支撑作用, 是网络工程师所研究的对象. 上四层(传输层, 会话层, 表示层和应用层)则被称作主机层, 是用户所面向和关心的内容, 这些程序常常将各层的功能综合在一起, 在用户面前形成一个整体.