python记录_day27 tcp/ip五层模型
## 网络协议按照不同的功能分为多层,目前存在的模型有osi七层模型、tcp/ip五层和tcp/ip四层模型
我们主要用的是tcp/ip五层模型
那么每层的作用是什么呢,现在就从设计者的角度自下到上逐层分析:
#物理层
两个设备要想进行数据传输,必须是连通的,物理层就是要干这件事,它主要定义物理设备的标准。在物理层传输的是电信号
#数据链路层
设备连通了,那么怎么确定你是不是我要找的那个设备呢,于是出现了Mac地址,每个网卡都有一个全球唯一的Mac地址(出厂是就被烧录进去了),在数据链路层,数据会封装成帧,每个数据帧会有一帧头,里面有源Mac地址和目标Mac地址以及数据类型等信息,这样接受设备在收到这个数据帧时,比较MAC地址,如果和自己设备的相同就收下,否则就丢掉。
#网络层
如果单靠Mac地址的话,几个设备之间通信还好,一个设备发一个信息,其他设备都会接收到并进行比较,但如果有很多设备,那么信息就会很多,就会形成广播风暴,于是出现了IP地址,用IP将网络隔离成一个个小的局域网。在网络层,数据会添加一个IP头封装成IP数据包,ip头中有源ip和目的ip的信息
#传输层
数据在被一个设备接收后,那么由谁来使用呢?这时就要用到端口了,应用程序的每个进程都会对应一个端口号,在传输层,就会为数据加上端口号信息,包括源端口和目标端口
根据传输要求的不同,传输层协议分为TCP协议和UDP协议。
tcp协议:面向连接的,提供可靠传输,效率低。
tcp连接的三次握手和四次挥手(见下图)
udp协议:面向无连接的,不可靠传输,效率高
#应用层
为用户的应用程序提供网络服务。收到数据后要进行解读,这些数据才算有意义,那解读就要遵循一等的规则,应用层的协议的相当于解读的规则。
####
下面是别人对于tcp/ip五层模型的讲解,介绍的很详细,也和容易理解。
http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html?tdsourcetag=s_pcqq_aiomsg