网络编程_网络基础3(网络层,链路层)

主要总结网络层与链路层的作用及相关协议

网络层:负责地址管理与路由选择,;ip协议:路由器
地址管理:
Ip地址组成:网络标识+局域网内主机标识 网络号 + 主机号
私网和公网:
网段划分:
在这里插入图片描述
早期IP地址分了五类:ABCDE
引入新的网段划分方案:CIDR 子网掩码
子网掩码:由一串连续的二进制1组成的一个数字
功能:与IP地址相与得到网络号;取反得到网络中的主机号个数
特殊的IP地址:IP地址中主机号全为0,IP地址中主机号全为1,127.0.0.1
私网和公网:RFC1918规定组建私网只能使用以下几种IP地址
10...* 172.16~172.31.. 192.168..
相邻的俩个网络,网络号不能相同
路由选择:路由表生成算法
链路层:负责相邻设备之间的数据传输:eth;交换机
以太网协议(eth)字段:源mac地址,目的mac地址,网络层(上层)协议,数据,CRC校验和(帧尾)
相邻设备之间的传输定位—通过mac地址来完成
Mac地址:uint8_t mac[6] —48位 定位标识相邻的设备的物理网卡地址

如何获取相邻设备的mac地址?
ARP协议:介于网络层与链路层之间的协议
通过广播ARP请求数据,数据中带有相邻设备IP地址(网关地址);去请求对应的主机的mac地址
相邻的设备都能收到这个ARP数据,若ip地址不是自己的,则丢弃,若是自己的ip地址组织ARP响应数据,填充进入自己的mac地址,发送出去
局域网的ARP欺骗攻击
ARP获取到mac地址后,会在主机上进行短时间的缓存(因为ip地址是动态分配的因此通常不会长时间缓存)

MTU:最大传输单元(限制发送的数据帧中数据的长度(包含了IP头和tcp/udp头)
MSS:最大数据段大小— MTU -ip - tcp/udp
MTU=1500请问udp数据最大长度

Mtu - iphdr - udphdr = 1500 - 20 - 8 = 1472;
1500 - 20 - 20 = 1460
Tcp在传输层回自动进行数据分段,通信双方协商mss大小
Mss(最大数据段大小) = mtp - iphdr - tcphdr
获取对方mss;跟自己的mss比对。。。。。。。。。。。。。

MTU对tcp/udp传输的影响
Tcp双方协商的mss大小就是根据mtu决定的 tcp 在传输层根据大小进行数据分段,双方取较小的mss作为最大数据段大小,传输数据。因为tcp在传输层自定进行数据分段 因此在网络层不会进行数据分片
因为udp在传输层不会自动进行数据分段,因此Udp若长度大于mss 小于64k-20-8s 会在网络层进行数据分片重组,一个分片的丢失会导致整个udp报文丢失;因此分片越多,危险性越高;因此最好在应用将数据分成合适大小的数据报。

在网络通信流程中体会qq发送文件?
聊天通信:采用UDP协议,通过服务器中转方式,因此,现在的在你仅仅跟对方发送聊天信息是无法获取IP的,udp高效传输,如何保证可靠,腾讯采用了上层协议来保证,服务器收到通过udp协议发送的消息,需要用udp协议回应一个应答包。而有时会出现发送失败,而对方又收到了这个信息,是因为发送端的网络原因而未能接受到服务器发送的应答包而引起的。
文件/自定义表发送:
自定义文件是以文件的形式传输的,而官方表情,实际发送的是命令字,客户端接收到后自动解释为表情,所以低版本无法接收到高版本的新表情,平台之间的官方表情也无法正确接收。A要向B发送一个文件,于是发出一个文件传送请求。服务器收到这个文件传送请求后,转发给B,同时或者在B应答后,将A的IP地址同时发送给B。B这个时候就得到了A的真实IP。这里的IP是你的本机IP。也就是说,如果A处在内网,B得到的地址就是一个内网地址。B得到了A的地址之后,就会尝试去连接A。如果B也处于内网,那么,显然A跟B之间的连接是无法建立的。这个时候,客户端就会请求服务器进行文件中转。因为服务器具有公网 IP,处在内网的A跟B都是可以连接到服务器的,于是,A跟B的文件传送就通过服务器中转的方式,顺利进行。(服务器中转使用的是443端口)(而公网和私网是两种Internet的接入方式,内网的计算机可向Internet上的其他计算机发送链接请求,但Internet上的其他计算机我i发向内网的其他计算机发送链接请求,而公网的计算机可以和Internet上的其他计算机随意互相访问)

其他协议和技术:DNS ICMP NAT

DNS:域名系统(域名解析系统)—通过域名获取IP地址
域名:.com .baidu.com
域名的发展史:
域名服务器层次划分:根域名服务器-》顶级域名服务器-》
域名的层次划分:根域名服务器-》顶级域名(.com .org .cn .jp) ->二级域名(.baidu.com .qq.com)->…
域名解析流程:
本地hosts文件-》本地dns解析器缓存-》本地dns服务器-》根域名服务器(俩种方式,递归与迭代)-》顶级服务器-》顶级域名服务器-》二级域名服务器-》返回或报错
迭代:本地hosts文件-》本地dns解析器缓存-》根域名服务器(俩种方式,递归与迭代)-》顶级服务器-》顶级域名服务器-》二级域名服务器-》 在逐层返回

浏览器中输入url回车后发生了什么?
域名解析流程
组织http请求(http协议格式) (http各个版本的新特性/https tls/ssl加密)
搭建tcp客户端,发送http请求(为什么要选择tcp)

在这里插入图片描述

ICMP协议:internet控制协议----相邻网络探测–网络层协议
Ping命令使用icmp实现网络探测数据统计—ping工具使用icmp协议实现,没有涉及到端口;
NAT:网络地址转换—网络层的实现—通常NAT服务部部署在网关设备上—对数据报中的源端地址进行替换。
目的:然数据发送出去后,相应信息能够园路返回
进行地址替换的同时, 建立映射表,保证响应的数据能够直到应该回复到局域网中的哪一个主机上
NAP技术:在NAT的基础上增加地址的映射关系
代理:
代理服务(翻墙技术):一个应用,在应用层实现数据的转发

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值