四层网络模型

应用层:

自定制协议:结构化组织数据传输

序列化:将结构化数据转化成二进制数据

反序列化:将二进制数据转化成结构化数据

举例:网络版计算器

 

HTTP协议:超文本传输协议,网络层,网络上传输资源

URL:统一资源定位符,俗称网址:http(协议方案名)://user:password@www.baidu.com(域名,人性化服务器地址):80(端口)/(服务器上的相对根补录)s?wd=c%2b%2b(键值对)&(键值对分隔符)。。。(键值对)#ch1(跳转)

urlencode/urldecode:每一个字节前四位转换成16进制,后四位转化成16进制,组合之后前面加上'%'

HTTP协议格式:

            request:

                           首行:请求方法,如GET和POST  空格  URL协议版本\r\n

                           头部:key: 键值对\r\nkey: val\r\n

                           空行:\r\n(标志头部结束,和正文间隔)

                            正文:

            response:

                            首行:协议版本 状态码  状态码解释描述

                            头部:

                             空行:

                             正文:

简单的HTTP服务器:

传输层:负责端与端之间的数据传输

端口号:

唯一标识一台主机上一个进程

一个数据如何在网络上通信:

sip sport  dip  dport  proto五元组

UDP:

协议格式:sport dport 报文长度(不是数据长度, 包含数据和协议头),校验和,UDP头总共8个字节,每个2字节

                  udp数据报总长度不能超过64k,如果数据超过64k,就要手动在应用层进行分包,但是UDP无法保证包序

                  可能导致数据丢失:所以在应用层进行包序的设置

特点:无连接--不可靠--面向数据报,

           由于无连接所以不可靠,面向数据报,传输不灵活,数据以整块整块发送,但是因为数据之间有明显的间隔,所以适用于实时性要求不高的应用

           UDP有一个下层实现的广播机制

TCP:有链接--可靠传输--面向字节流

协议格式:sip  dip  32位序列号  32位确认序列号  4位首部长度  6位保留  6个置位(SYN、ACK、RET、URG、FIN、PSH)16位窗口大小   16位校验和   16位紧急指针  选项   数据

可靠性:序列号保证包序-----》确认应答机制、超时重传机制----》导致性能下降-----》

              -----》滑动窗口机制(多个,如果收到下个ACK,那么就算上面ACK丢了也不要紧)---

              、流量控制(根据网络情况协商逐步调整窗口大小,加速度先增加后减小直至窗口最小,再次循环此过程),延迟响应机制(处理完手头的事)

              、拥塞响应机制

              、捎带应答机制提高性能

面向连接:连接管理----》三次握手四次挥手

面向字节流:数据传输灵活,但是无明显边界,可能有粘包问题,TCP头太长,所以将很多条数据攒到缓冲区,到一定程度一起发送(人满发车)

网络层:IP协议

格式:

16位总长度:IP数据报总长度  2个字节,64k, 

                      如果是TCP数据,则数据最长为64k-ip头最小长度20字节-tcp头最小长度20个字节;

                      如果是UDP数据,。。。。。

4位版本号:6版

4位首部长度:IP头有多长, 有多少个4字节

13位偏偏移:小的数据报想对于原始大数据报的偏移量

8位生存时间

16位标识:数据包分片,数据交互到网络层会根据数据链路层最大传输单元MTU限制,会在网络层进行数据分片,分片之后必须标记序号用以重组。

3为标识位:1位保留、一位禁止分片(数据太大就丢失)、最后一位为0表示是最后一片。

8位生存时间:调一调,Linux下通常是64,防止路由回环

8位服务类型:3位保留,一位必须为0,最大吞吐量、最小延时、最低成本、最高可靠性   互斥

 

地址管理和路由选择

地址管理:网段划分,早期如何划分,现在如何划分,特殊地址,私有公有地址,IP地址不够如何解决

如何路由选择?:

路由器通过目的IP地址来判断主机地址是不是本局域网的主机,如果不是就通过WAN口发送到上一层路由器

IP地址太少(所以网络复杂):

1.动态地址分配,不够-----》2.NAT技术:多个主机同个一个路由器上网,只需要一个外网,没经过一个路由器IP都会被修改掉,改称自己的WAN口地址------》3.IPv6:不想下兼容,没有推广起来

IP地址包含网段、网络号、主机号,DHCP不仅仅分配IP地址,还有网关和子网掩码

路由器有两块网卡,第一个连接外网(WAN口)

                                第二个连接内网(很多个LAN口,连接局域网内的主机),也就是网关地址,主机发送数据要先发给网关。

CIDR:子网掩码跟IP地址相与就得到网络号。网关:192.168.5.1(路由器网卡的地址)   子网掩码: 255.255.255.0 -----》IP:192.168.5.0。局域网内主机之间不可能直接通信,数据只能发给网关。如果目的地址不再路由表中,就替换数据中的源地址,通过WAN口转发。替换之时要建立端口映射,以保证从WAN口某端口接收到的数据都能够回复到源主机

192.168.2.22/24:代表这个前24位是网络号,即192.168.2

特殊的IP地址,主机号全1为广播,主机号为0为局域网,虚拟回环网卡地址127.0.0,用于本机的网络回环测试

私有公有地址:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值