| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> TCP/IP学习笔记 -> 正文阅读 |
|
[网络协议]TCP/IP学习笔记 |
1 引言 1.协议(Protocol):一组控制数据通信的规则(三要素:语法、语义、时序) 标准(standard):一致同意的规则(事实上的标准、合法标准) 2.ISO国际标准化组织,ANSI美国国家标准化局 ??Internet标准:RFC文档 2 OSI模型和TCPIP协议族 1.OSI参考模型:open system interconnection开放系统互连 目的:使两个不同的系统能够互相通信,而不需要改变底层的硬件或软件逻辑。 包括:(1)物理层 (2)数据链路层 (3)网络层 (4)传输层 (5)会话层 (6)表示层 (7)应用层 2.对等层、对等实体、对等层协议、协议数据单元(PDU) 3.TCP/IP四层结构:网络接口层(LAN、MAN、WAN)、网络层(IP、RAP、RAPR、ICMP、IGMP)、传输层(TCP、UDP)、应用层(FTP、HTTP、SMTP、DNS、TFTP、SNMP) 4.编址 物理地址:标识通信节点,节点所属LAN或WAN指定,LAN或WAN唯一; IP地址:标识通信节点的网络连接,Internet指定,Internet内唯一; 端口地址:标识通信的进程,操作系统指定,一台计算机内唯一 5.IPv4:地址空间不足(32位)、低效率、对服务质量和安全等方面支持弱; ??IPv6:扩大了地址空间(128位),改进了IPv4的弱点 3 底层网络技术 1.局域网(LAN):允许一些独立设备在受限地理范围内彼此能够直接通信;共享介质——广播式 ? 广域网(WAN):在一个很大的地理范围内提供数据、话音、视频信息的长距离传输;交换网络——点到点式 2.以太网(Ethernet)帧:(8字节控制)+14字节首部+DATA+4字节校验尾部 最大限制:1518字节(DATA_max=MTU=1500字节),最小帧长:64字节(2τc) 3.交换(switching):电路交换 VS 分组交换(数据包、虚电路) 4. 连接设备 ?? 转发器(Repeater)物理层 ?转发器越多,冲突域越大,网络性能越差 ?? 网桥(Bridge) ???链路层 ?分割冲突域,网络性能提升 ? ?路由器(Router) ?网络层 ?? 网关(Gateway) ??应用层 4 IP编址 1. IP地址—通用标识 ?唯一标识互联网上的主机或路由器 32位地址,常用点分十进制表示 2. IP地址分类 A类:0 Net^7 Host^24? ????0.0.0.0 ~ 127.255.255.255???? 单播 B类:10 Net^14 Host^16 ???128.0.0.0 ~ 191.255.255.255?? 单播 C类:110 Net^21 Host^8 ???192.0.0.0 ~ 223.255.255.255?? 单播 D类:1110 Multicast ??????224.0.0.0 ~ 239.255.255.255?? 多播 E类:1111 Reserved?????? ?240.0.0.0 ~ 255.255.255.255?? 保留地址 3.特殊IP地址 ①网络地址:Net id特定,Host id全0 ②直接广播地址:Net id特定,Host全1 ③受限广播地址(源所在的网络内广播):255.255.255.255 ④本网络上的本主机:0.0.0.0 获取地址时临时使用 ⑤环回地址:127.xxx.xxx.xxx 测试机器软件 5 构成子网和超网 1.构成子网(subnetting):将一个IP类网划分几个较小的子网(subnet),多个物理网共享同一个IP类网前缀 构成:三层结构(Net id + Subnet id + Host id) 子网地址:特定的Net id + Subnet id + 全0的Host id 子网广播地址:特定的Net id + Subnet id + 全1的Host id 2.掩码(表示子网的大小):全1的Net id + Subnet id + 全0的Host id ? 位与运算:①网络地址=IP地址 & 掩码 ??????????? ②主机地址=IP地址 & 掩码的反=IP地址-网络地址 ??????????? ③地址范围=(网络地址,网络地址+掩码的反) 3.默认掩码 VS 子网掩码 4.最小的IP子网的掩码=255.255.255.252(4个IP地址中只有2个主机地址) ??变长子网划分所需IP地址个数=主机数+路由器数+2个特殊地址 5.构成超网(Supernetting):偶数个C类网合并+地址块连接 ??方法:将Net id中的某些1改为0 6 IP组的交付和路由选择 1.交付(Delivery):对分组的物理转发 路由选择(Routing):为分组寻找路由 2.面向连接(虚电路):建立时选路 VS 无连接(数据报):每个分组独立选路 3.直接交付(目的IP-物理地址):分组目的和分组发送接口在同一IP网络中 ??间接交付(下一跳IP-物理地址):分组目的和分组发送接口在不同IP网络中 ??交付方式判断:目的IP & 发送口掩码 = 发送口IP & 发送口掩码 4.静态路由选择(手动更新) VS 动态路由选择(路由协议自动更新) 5.路由选择算法:用IP分组中的目的IP地址查找路由表,使用匹配表项的下一跳IP地址完成 ??匹配条件:目的IP & Mask(i) = Net(i) 顺序查找 7 网际协议(IP) ?无连接、不可靠 1.数据报(datagram):信息字段(版本4+长度20+服务类型8)+分片控制字段(标识16+标志3+片偏移13)+生存时间字段(TTL8+协议8+校验和16)+源IP地址(32bits)+目的IP地址(32bits) 2.分片:仅有路由器操作 data+header<=MTU ??重组:仅有目的主机操作 8 ARP和RARP 地址解析:逻辑地址à物理地址 1.ARP(IPàMAC):主机发送一个包含目的IP的请求,以广播形式在物理网内扩散。网内所有主机检查是否与目的IP相匹配,若匹配则将自己的MAC地址返回给请求者 ①ARP缓存表永远认为新的就是正确的,直接更新 ②只有ARP请求和ARP应答才能更新缓存表 2.RARP(MACàIP):广播发送请求,sIP和tIP不填,sMAC=tMAC;RARP服务器单播发送应答 用途:无盘机器的引导,动态IP地址配置 9 ICMP 1. IP的辅助协议,为IP提供差错报告机制。为其它层(TCP/UDP 应用)提供辅助功能 。 2. ICMP在IP之上实现,逻辑上与IP同在网络层。与IP传递过程一致,无连接通信。ICMP差错报告只能送给IP分组的源站,沿途的转发路由器不能获知ICMP报文内容。 10 UDP用户数据报协议 ?无连接、不可靠 1.端点(endpoint)=协议端口(port)+IP地址 2.校验和:伪首部+UDP首部+数据 伪首部:根据IP首部的部分信息形成,不与UDP报文一起发送到网络上。进一步确保UDP报文送到正确主机的正确端口上。 11 TCP 面向连接、可靠、有缓冲、数据流 1.可靠性保证 (1)采用面向连接的通信方式; (2)滑动窗口协议,以提高通信性能; (3)携带确认方式; (4)只有一种报文格式。 2.端口、端点概念与操作方式和UDP完全一样,通信双方抽象的虚电路连接(全双工)。 3.分割数据流产生报文段发送出去,接收处将报文段恢复成数据流 ??报文段采用序号标号,上一段序号X,长度L,则下一段序号为X+L 4.MSS(最大报文长度)影响网络传输性能 ? 太小:降低网络利用率(报文开销) ? 太大:降低网络性能(分片降低成功传输概率) 5.窗口比例因子:针对高吞吐量和高时廷传输介质上的数据传输,增大窗口大小 ? 比例因子max=16? 最大窗口大小=2^32 6.差错控制 ? 检测:校验和、确认、超时 ? 纠正:重传 7.确认机制—带重传的肯定确认 ? 接收方收到正确的数据后,向源站回送ACK报文。 ? 源站一段时间未收到ACK报文,发送方重传错误数据(受损报文,丢失报文) ? 累计确认:ACK number是接收方希望接收到的下一个字节,对ACK number以前的所有字节的确认 8.超时重传机制 ? 发送方发送数据时启动一个定时器,定期期间,发送方收到确认后,再发送后续数据;定期期满,发送方重传未确认数据(受损报文,丢失报文) 问题1:重复报文段(精确估计报文往返时间RTT) 问题2:失序报文段(直到收到报文之前的所有报文再确认) 9.TCP的流控:收发速率匹配,防止接收方被数据流淹没 ? 方法:收发速率匹配—滑动窗口协议 ? TCP的拥塞控制:表现为接收时廷增加,超时重传机制会进一步加重网络拥塞 ? 方法:减少报文段的发送量—滑动窗口协议 10.窗口:发送方在收到确认前,其发送缓冲区可以发送的数据流长度 ?? 滑动:随着确认的不断到达,窗口也不断的向后移动 ?? 动态可变窗口:发送窗口大小可变 ?? ①超时重传:动态可变窗口导致重传报文与原报文不一致 ?? ②流量控制:窗口机制可能不会立即起作用,无法确切知道和防止拥塞 ?? ③拥塞避免:发送窗口=min(窗口通告值,拥塞窗口) ???? 没有收到确认,加速递减;收到确认后,慢启动 ?? 糊涂窗口综合征(SWS):通信双方的应用进程以不同速率工作时,会出现严重的性能问题。 11.三次握手,四次挥手 12.UDP和TCP的特点比较 UDP:无连接、不可靠、无拥塞控制、报文、支持多目标并发通信 TCP:面向连接、可靠、有拥塞控制、数据流、点对点通信、全双工 12 路由协议 1.Metric(度量):衡量路径的长短 ??Convergence(收敛):采用特定路由协议的所有路由器对整个网络拓扑具有一致性的认识 2.自治系统(AS):处于一个管理机构控制下的网络和路由器集合 ??内部网关协议:RIP(距离向量路由算法D-V)、OSPF(链路状态路由算法L-S) ??外部网关协议:BGP-4 3.RIP选路信息协议:周期性向邻居路由器发送自己的路由表,封装在UDP中 ??计算路径:累计距离向量 ??Version1通告信息:IP地址+到达目的的跳数(先加1再发送) ??问题:路由环路&无限计数 ??解决方法:触发更新、水平分割、毒性逆转、抑制定时器 4.OSPF开放最短路径优先:事件驱动,向整个区域内的路由器发布链路状态通告分组(LSA),封装在IP分组中 ? 计算路径:SPF-最短路径优先算法 ??OSPF Tables:邻接表、链路状态数据库,转发表 ??操作步骤:①建立路由器邻接关系;②选择DR/BDR(可选);③路由发现;④选择适当路由;⑤路由信息维护 5.RIP VS OSPF ①网络拓扑:RIP只了解自己的邻居和可到网络,OSPF了解整个网络; ②路由计算方法:RIP跳数累加,OSPF计算最短路径优先树 ③路由更新方式:RIP周期更新+触发更新,OSPF事件驱动更新 ④路由更新内容:RIP更新自有的所有,OSPF只更新有变动的 ⑤收敛速度:OSPF快于RIP ⑥适用环境:OSPF适用规模大于RIP 6.BGP-4边界网关协议:封装在TCP中可靠传输,基于策略的选路——路径属性 13 客户/服务器模型 1.一个server可以同时向多个client提供服务,一个client不可以同时向多个server请求服务 2.循环:程序一个接一个的运行,使用UDP服务器 ??并发:同时运行多个程序,使用TCP服务器 14 BOOTP和DHCP 1.BOOTP引导协议,静态配置协议(服务器上预先设置了客户端物理地址和IP地址的绑定),引导无盘计算机或第一次启动的计算机 2.DHCP动态主机配置协议:静态IP池+动态IP 15 DNS 1.域名:用.分开的标号序列(节点à根的顺序) ? 域:域名空间中的一颗子树 ??域名服务器:存放所授权区的信息 ??区:一个域名服务器所负责或授权的范围 2.DNS解析:将域名映射到IP地址 ??反向查询:将IP地址映射为域名 ??方法:递归解析(更优)、迭代解析 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 13:27:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |