osi七层协议
互联网的本质就是一系列的网络协议,这个协议就叫OSI协议(一系列协议),按照功能不同,分工不同,人为的分层七层。
物理层
功能:主要是基于电器特性发送高低电压(点信号),高电压对应数字1,低电压对应数字0。
作用:连接计算机,传输电信号
中间的物理链接可以是光缆,电缆,双绞线,无线电波。中间传的是电信号,即0110...这些二进制。
数据链路层
由来:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思
功能:定义了电信号的分组方式
以太网协议
早期的时候,数据链路层就是来对电信号来做分组的。以前每个公司都有自己的分组方式,后来形成了统一的标准,即以太网协议ethernet。ethernet规定:一组电信号构成一个数据报,叫做'帧',每一数据帧分成:报头head和数据data两部分
- head包含:(固定18个字节)
- 发送者/源地址,6个字节
- 接收者/目标地址,6个字节
- 数据类型,6个字节
- data包含:(最短46字节,最长1500字节)
Mac地址
head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即Mac地址。
广播地址
局域网内通过交换机将信息发送给所有计算机,然后通过匹配Mac地址来做出响应。
网络层
引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址,用与不同的局域网之间的通信。
ip协议
IP地址是靠路由器传输,然后可以跨局域网通信。ip地址是局域网的编号。
Mac地址用来标识你这个教室的某个位置,ip地址用来标识你在哪个教室(哪个局域网)。
从一个教室发往另一个教室的信息,需要通过对方教室的负责人(网关)来进行转发。
ip协议的作用主要有两个:
- 为每一台计算机分配ip地址
- 确定哪些地址在用一个子网络
有了Mac地址+IP地址,就能确定世界上独一无二的一台计算机。
传输层
传输层的由来:网络层的IP帮我们区分子网,以太网层的Mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序。
那么我们通过IP和Mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。
传输层功能:建立端口到端口的通信
有了Mac地址+IP地址+端口,就能确定世界上独一无二的一台计算机上的应用程序。
TCP协议
靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。
UDP协议
不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。
应用层
应用层由来:用户使用的都是应用程序,均工作于应用层,互联网是开放的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式
应用层功能:规定应用程序的数据格式。
- 例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。
Socket抽象层
进程如果需要进行通讯最基本的一个前提是能够唯一标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突几率很大,这时候我们需要另辟它径了,我们知道IP层的IP地址可以唯一标示主机,而TCP层协议和端口号可以唯一标示主机的一个进程,这样我们可以利用IP地址+协议+端口号唯一标示网络中的一个进程。
能够唯一标示网络中的进程后,它们就可以利用Socket进行通信了,什么是Socket呢?我们经常把Socket翻译为套接字,Socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。
来源:https://www.cnblogs.com/zhoajiahao/p/11083883.html