【⽹络】TCPIP五层模型中的典型协议以及特性
OSI七层模型:应⽤层,表⽰层,会话层,传输层,⽹络层,链路层,物理层。由于它既复杂⼜不实⽤所以提出了TCP/IP五层协议
1. 应⽤层:(OSI的应⽤层,表⽰层,会话层)
负责应⽤程序之间的数据沟通
协议就是通信双⽅的数据格式约定
1. 知名协议:HTTP协议(超⽂本传输协议)ttp与https的主要区别:http的连接很简单,是⽆状态的;HTTPS协议是由SSL+HTTP协
议构建的可进⾏加密传输、⾝份认证的⽹络协议,⽐http协议安全。http默认端⼝是80,https为443。
FTP(⽂件传输协议)、DNS(域名系统)、DHCP(动态主机配置协议)
2. ⽹址-URL(统⼀资源定位符): 端⼝有16位,也就是65535各个端⼝可供选择,但前1024个端⼝不建议使⽤(被很多有名协议使
⽤)
URL编码和解码操作:
  查询字符串是⽤户提交给服务器的数据信息,这些提交的数据如实出现特殊字符,则有可能与url中间间隔符产⽣歧义导致url解析失败,所以需要url解码和编码操作。
url解码:将特殊字符的每⼀个字节转换为16进制数字字符串,并且为了表明这两个字符是经过了url编码后的数据,需要在转换后的数据前加上%。
例:+ ——>%2b
url编码:当遇到%,则认为紧跟其后的两个字符需要转码,将第⼀个字符转换为数字左移4位与第⼆个字符转换后的数据进⾏相加,%2b ——>(‘2’- ‘0’)<<4 + ( ‘b’-‘a’ + 10)
HTTP协议格式:
1. ⾸⾏:
1.1请求⾸⾏:
请求⽅法:GET/POST ,协议版本:0.9/1.0/1.1/2
GET:主要⽤于获取实体资源,但是并⾮不提交数据。
POST:传输实体主体,向服务端提交表单数据。
两者侧重点不同,GET更偏向于获取,POST更偏向于提交,最⼤的区别是GET没有正⽂,GET所提交的数据是在url的查询字符串中。
   1.2响应⾸⾏:
   协议版本,响应状态码
   状态码描述信息1**/2**/3**/4**/5**
200成功,301永久重定向,302临时重定向,404不到资源,502服务器⽹关错误
2. 头部:以⼀个key:val组成的键值对,并且各个键值对之间以\r\n作为间隔
Content-length:正⽂长度/Transfer-Encoding:正⽂长度⽆法直接获取的话通过分块传输
Content-type:正⽂类型
3**/Location:表名重定向地址+·
3. 空⾏:\r\n ⽤于间隔头部与正⽂
4. 正⽂:由具体情况决定
2. 传输层:
负责端与端之间的数据传输, 说⽩了就是两个进程之间的数据传输;TCP/UDP协议
端⼝:在⼀个主机上标识⼀个进程(标识接收到的数据应该交给哪个进程处理)
⼀个端⼝只能被⼀个进程处理,但是⼀个进程可以使⽤多个端⼝ ,端⼝可以理解为⼀个 先通道。
uint6_t ⽆符号16位整数:端⼝号0 ~ 65536,但是0 ~ 1023不推荐使⽤,因为这些端⼝都被⼀些知名协议使⽤。
五元组:在⽹络通信中每⼀条数据都必须带有⼀些关键信息(源地址IP/源端⼝/⽬的IP地址/⽬的端⼝/协议)⽤于⽹络中的⼀条通信。
UDP协议:⽤户数据报协议:⽆连接,不可靠,⾯向数据报。
1. ⽆连接,不可靠:不需要建⽴连接,只需要知道对端,就可以发送数据。(发短信)
2. ⾯向数据报:数据只能⼀整条⼀整条向应⽤层交付。(既不会拆分也不会合并)
3. udp协议字段:16位源\⽬的端⼝(确定数据从哪个进程来到哪个进程去)、 16位数据报长度、16位
校验和(校验接收的数据与发
送的数据是否⼀样,⼆进制反码求和)
4. 16位数据报长度决定的特性:
1.⾯向数据报。
2.udp每次传输的报⽂⼤⼩是有长度限制的64k(⽤户给定的传输数据长度不能⼤于64k - 8),因此当数据长度⼤于64k-8时,就需
要⽤户在应⽤层进⾏数据分包,将数据分成⼀个个⼩于64k-8⼤⼩的数据段。
5. udp并不保证数据有序到达,需要⽤户在应⽤层进⾏包序管理。
6. ⽤户每次调⽤发送接⼝发送数据的时候,udp会直接为这条数据封装udp头部信息,直接发送出去,为了防⽌⽤户接受半条数据,导致
udp的剩余数据⽆法根据协议字段中的数据报长度确定数据长度,因此udp规定数据只能整条交付。
应⽤层在传输层上基于udp实现的协议:DNS/DHCP(动态地址分配协议,谁上⽹给谁分配地址)
**tcp(传输控制)协议:**⾯向连接、可靠传输、⾯向字节流
tcpip路由协议连接管理部分
3. ⽹络层:
负责地址管理与路由选择,路由选择需要依托于⼀个良好的地址管理,为⽹络中的每⼀条数据选择⼀个合适的路径。⽹络中每条数据都会包含两条信息:源端IP地址,⽬的端IP地址。
典型协议:IP
IP地址:在⽹络中唯⼀表⽰⼀台主机,⽆符号的32位整数(IPV4),表⽰成点分⼗进制的⽅式123.139.84.33。
⽹段划分:
把IP地址分为⽹络号和主机号,在同⼀个局域⽹中,⽹络号都相同,但是主机号不同。相邻的两个局域⽹,⽹络号不能相同,局域⽹之间是由路由器来连接的。
如何区分⽹络号和主机号,通过⼦⽹掩码来区分,⼦⽹掩码是⼀个32位的整数,同样也可以表⽰为点分10进制。要求⾼位必须为1低位必须为0。
将IP地址和⼦⽹掩码进⾏ “按位与” 操作, 得到的结果就是⽹络号。
由于只有42亿9000多万,所以⽤DHCP(动态分配, 能够⾃动的给⼦⽹内新增主机节点分配IP地址),NAT(地址转换技术,组建局域⽹让局域⽹中的主机都使⽤同⼀个IP地址)来保证够⽤,最终的解决⽅法还是IPV6(⽆符号128位),但是IPV6与IPV4不兼容。
典型设备:
路由器,进⾏路由选择的设备
4. 链路层:
负责相邻设备之间的数据传输
典型协议:
Ether协议(以太⽹协议)
MTU:
MTU表⽰⼀个数据链路层的最⼤长度
以太⽹的MTU1500字节
MTU会导致IP数据分包
MTU对传输层没有影响
不同的数据链路层协议对于MTU的值是不同的
MAC地址:
存储⽹卡的物理地址,表⽰互联⽹上的唯⼀⼀个主机
MAC与IP的区别:
IP地址描述的是路途总体的 起点 和 终点;
MAC地址描述的是路途上的每⼀个区间的起点和终点;
典型设备:
交换机,意为“开关”是⼀种⽤于电(光)信号转发的⽹络设备,但是并不具备选择路径的功能,只是固定转发。
5. 物理层:
负责光电信号的传输
典型协议:
以太⽹协议
典型设备:
集线器:将信号集中转发,同时将信号放⼤

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。