以下为学习过程中的一些总结,有什么错误点多谢大家帮忙~~~
常见的计算机网络体系结构
OSI七层模型:
- 应用层? ?:? ? ? 位于OSI模型最上方,不关系数据的传输只关心业务逻辑。
- 表示层? ?:?? ? ?发送数据时将应用层数据压缩 接收时进行解压? 数据格式的转换
- 会话层? ?:? ?? ?两个网络实体间的连接 先建立连接在发起通信
- 传输层? ?:? ? ? ?负责将数据从一个实体传输到另一个 不管数据传输的方式
- 网络层? ?:? ? ? ?把一个数据包从一个IP地址传输到另一个IP地址
- 数据链路层? : 确保两个相邻设备间的数据传输
- 物理层? ?:? ? ? ?主要定义物理设备标准
OSI 分层设计比较臃肿? 会话表示应用 ——> 应用层
五层协议:
- ? ? ? ? 应用 :从一个应用发往另一个应用
- ? ? ? ? 传输:主机到主机见的传输
- ????????网络:提供路由和寻址
- ????数据链路:两节点间的物理连接
- ????????物理:负责0-1信号传输
TCP/IP4层:
各层网络协议
应用层(Application): ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?应用程序网关(application gateway) ? ? ? ? Telnet: 远程登录? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(在应用层连接两部分应用程序) ? ?? ? ? ? ? FTP(File Transfer Protocol):文件传输协议 ? ? ? ? HTTP(Hyper Text Transfer Protocol):超文本传输协议 ? ? ? ? SMTP(Simple Mail Transter Protocol):简单邮件传输协议 ? ? ? ? ?POP3(Post Office Ptotocol):邮局协议 ? ? ? ? SNMP(Simple Network Mangement Protocol):简单网络管理协议 ? ? ? ? DNS(Domain Name System):域名系统 传输层(Transport):? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????????????? 传输网关(transport gateway) ? ? ? ?TCP(Transmission Control Potocol):传输控制协议? ? ? ? ? ?(在传输层连接两个网络) ? ? ? ?UDP(User Data Potocol):用户数据协议 网络层(Internet):? ? ? ? ? ? ? ? ? ? ????????????????????????? ? ? 多协议路由器(multiprotocol router) ? ? ? ? IP(Internet Protocol):网络协议? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (在异构网络间转发分组) ? ? ? ?ARP(Address Resolution Protocol):地址解析协议 ? ? ? ?RARP(Reverse Address Resolution Protocol) :逆地址解析协议 ? ? ? ?ICMP(Internet Control Message Protocol):因特网控制消息协议 ? ? ? ?IGMP(Internet Group Manage Protocol):因特网组管理协议 ? ? ? ?BOOTP (Bootstrap):可选安全启动协议 数据链路层(Data Link):? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 网桥(bridge)交换机(switcher) HDLC(High Data Link Control):高级数据链路控制? ?(在LAN之间存储-转发数据链路针) ? ? ? ? SLIP(Serial Line IP):串行线路IP ? ? ? ? PPP(Point-to-Point Protocol):点到点协议 ? ? ? ? 802.2等 物理层(Physical): ? ? ? ? 中继器(repeater) 集线器(hub) ? ? ? ? ?无 ? ? ? ? ? ? ? ? ? ? ? ? ? (放大或再生弱的信号,在两个电缆段之间复制每一个比特)
TCP协议:可靠全双工连接导向的协议
连接:是虚拟抽象的概念连接也成为会话是通信更稳定安全? 消耗更多资源
全双工:双向发送数据? 单工 只能单向? ?半双工?? 某一时刻只允许数据在一个方向传输
可靠性:使无序的数据恢复原有的顺序
传输数据: 报文拆分 增加TCP头 数据重组 (应用层数据大时无法一次性传输完 拆分后实现并行传输)
纠错能力: 保证数据可靠性
流控能力: 合理的收发速率,让两边都可以稳定的工作
TCP报文段:?TCP头部-TCP段数据
- 源端口:描述发送方机器上的应用
- 目标端口:描述接收方服务器上的应用
- 发送序号(Seq)/接收序号(Ack)
seq ack能确定这条消息 在会话中的顺序
三次握手
- ????????第一次握手: 主机 A 发送位码为 syn=1,随机产生 seq number=1234567 的数据包到服务器主机 B,由 SYN=1 知道,A 要求建立联机;
- ????????第二次握手: 主机 B 收到请求后要确认联机信息,向 A 发 送 ack number=( 主 机 A 的seq+1),syn=1,ack=1,随机产生 seq=7654321 的包
- ????????第三次握手: 主机 A 收到后检查 ack number 是否正确,即第一次发送的 seq number+1,以及位码ack 是否为 1,若正确,主机 A 会再发送 ack number=(主机 B 的 seq+1),ack=1,主机 B 收到后确认。
四次挥手 TCP 建立连接要进行三次握手,而断开连接要进行四次。这是由于 TCP 的半关闭造成的。因为 TCP 连接是全双工的(即数据可在两个方向上同时传递),所以进行关闭时每个方向上都要单独进行关闭。这个单方向的关闭就叫半关闭。当一方完成它的数据发送任务,就发送一个 FIN 来向另一方通告将要终止这个方向的连接。 关闭客户端到服务器的连接:
- 首先客户端 A 发送一个 FIN,用来关闭客户到服务器的数据传送,然后等待服务器的确认。其中终止标志位 FIN=1,序列号 seq=u
- 服务器收到这个 FIN,它发回一个 ACK,确认号 ack 为收到的序号加 1。
- 关闭服务器到客户端的连接:也是发送一个 FIN 给客户端。
- 客户段收到 FIN 后,并发回一个 ACK 报文确认,并将确认序号 seq 设置为收到序号加 1。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
IP协议: 网络层协议?????????ip协议可能遇到的问题 :封包损坏 丢包 重发 乱序
? ? ? ? 主要用于互联网通信。IP协议用于将多个包交换网络连接起来,他在原地址和目的地址之间传输数据报,还提供对数据大小的重新组装功能,以适应不同网络的要求。
IP协议是TCP/IP协议族的核心协议,最常用的IP协议的版本号是4,即IPV4 ,它的下一个版本就是 IPV6。
网络层需要解决的3个问题:延迟? 吞吐量? 丢包率
IP协议工作原理:?
低延迟高吞吐地丢包低成本
分片 : 把数据切分成片 适配底层传输网络
增加协议头:
? ? ? ? ? ? ? ? ? ?0? ? ? ? ? ? ?4? ? ? ? ? ? ? ? ? ? ? ? 8? ? ? ? ? ? ? ? 16? ? ? ? ? ? ? ? ? ?19? ? ? ? ? ?? 24? ? ? ? ? ? ? 32??
版本号 | IP协议头长度 | 服务类型 | 报文的长度 | 报文ID(标识) | 标志位 | 偏移量 | 生存时间 | 协议 | 首部校验和 | 源IP | 目标IP | 选项长度 可变 |
延迟吞吐量丢包率 :
- 延迟:1bit数据从网络的1个终端传到另一个终端需要的时间
- 吞吐量:单位时间内可以传输的平均数据量
- 丢包率:发送出去的 没有到达目的地的比例
寻址:给一个地址找到这个? IPV4 逐级寻址
路由:若寻找的IP地址不在局域网中 需要路由去找到对应网络? ?路由运算实现
IPV4和IPV6的主要区别:地址 寻址
? ? ? ? 地址数量:ipv4 4个8位 共32位 .分割? ? ipv6 8个16位 共128位 :分割?
? ? ? ? 寻址 全局单播 本地单播 分组广播
IP地址:
- ?A类地址( 0.0.0.0 - 127.255.255.255 )以”0”头,网络段长度为8位,其中可变部分的长度为7位;主机段长度为24位。7位的可变网络段可识别2^7=128 (0~127)个网络,其中0和127另有用途,故只有126个可用的A类网络地址。另外,主机位全”0”代表网络本身,全”1”代表网内广播,因此一个A类网络地址可识别的可分配地址有 2^24-2 个。
- B类地址( 128.0.0.0 - 191.255.255.255 )以”10”开头,网络段长度为16位,可变部分的长度为14位;主机段长度为16位。14位的可变网络段可以识别的网络数为 2^14 个。另外,主机位全”0”与全”1”功能同A类地址,因此一个B类网络可以分配地址有 2^16-2 个。
- C类地址( 192.0.0.0 - 223.255.255.255 )以”110”开头,网络段长度为24位,其中可变部分的长度为21位;主机段长度为8位。21位的可变网络段可以识别的网络数为 2^21 个。可分配的主机地址是 2^8-2 个。
- D类地址( 224.0.0.0 - 239.255.255.255 )为组播地址,使用”1110”开头,不分网络段和主机段,有 2^28 个组播地址。用于标识预先定义的一组主机。主机使用组播通信时,可以将组播数据报一次性发送给所有同组的主机。
- E类地址( 240.0.0.0 - 255.255.255.255 )是保留地址,用于研究使用。以”1111”开头,不区分网络段和主机段,其中32位全1代表本网络内广播,因此E类地址共有 2^28-1 个。
私有IP地址和特殊IP地址
根据用途和安全性级别的不同,IP地址还可以大致分为两类:公共地址和私有地址。公用地址在Internet中使用,可以在Internet中随意访问。
UDP:用户数据报协议??协议简单搭建在IP协议之上,尽可能的减少通信机制速度非常快。在传输层提供直接发送报文的能力
TCP?和 UDP区别? TCP 可靠 有序 负载大 不适合广播场景 UDP反之。
HTTP协议(超文本传输协议) 应用层协议:浏览器和WebServer之间通信协议,处理客户端和服务端之间通信。
- ? ? ? ? 请求: 请求头+消息体
- ? ? ? ? 返回: 返回头+消息体
http请求头返回头都是 k-v
1.HTTP的方法:
- GET: 从服务器获取资源
- POST:在服务器创建资源
- PUT: 在服务器修改资源(幂等性)
- OPTION: 在服务器删除资源
- TRACE: 用于显示调试信息,多数网站不支持
- CONNECT: 代理部分讲解
- PATCH: 对资源进行部分更新
2.HTTP 状态码:
- 1xx: 提供信息
- 2xx:: 成功? ?
- 3xx: 重定向
- 4xx: 客户端错误
- 5xx: 服务端错误
2开头 (请求成功)表示成功处理了请求的状态代码。?
200?? (成功)? 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。? 201?? (已创建)? 请求成功并且服务器创建了新的资源。? 202?? (已接受)? 服务器已接受请求,但尚未处理。? 203?? (非授权信息)? 服务器已成功处理了请求,但返回的信息可能来自另一来源。? 204?? (无内容)? 服务器成功处理了请求,但没有返回任何内容。? 205?? (重置内容) 服务器成功处理了请求,但没有返回任何内容。 206?? (部分内容)? 服务器成功处理了部分 GET 请求。
3开头 (请求被重定向)表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。
300?? (多种选择)? 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。? 301?? (永久移动)? 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。 302?? (临时移动)? 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 303?? (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。 304?? (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。? 305?? (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。? 307?? (临时重定向)? 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
4开头 (请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。
400?? (错误请求) 服务器不理解请求的语法。? 401?? (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。? 403?? (禁止) 服务器拒绝请求。 404?? (未找到) 服务器找不到请求的网页。 405?? (方法禁用) 禁用请求中指定的方法。? 406?? (不接受) 无法使用请求的内容特性响应请求的网页。? 407?? (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。 408?? (请求超时)? 服务器等候请求时发生超时。? 409?? (冲突)? 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。? 410?? (已删除)? 如果请求的资源已永久删除,服务器就会返回此响应。? 411?? (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。? 412?? (未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。? 413?? (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。? 414?? (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。? 415?? (不支持的媒体类型) 请求的格式不受请求页面的支持。? 416?? (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。? 417?? (未满足期望值) 服务器未满足"期望"请求标头字段的要求。
5开头(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。
500?? (服务器内部错误)? 服务器遇到错误,无法完成请求。? 501?? (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。? 502?? (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。? 503?? (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。? 504?? (网关超时)? 服务器作为网关或代理,但是没有及时从上游服务器收到请求。? 505?? (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
3.HTTP缓存:
- 什么是缓存?存储将被用到的数据,提升访问速度。缓存命中率=命中次数/总次数
- 缓存的优势:成本低(速度快,时间少)
- 缓存条目:通常是Key-Value结构。
- 缓存置换:缓存满了之后,每次创建新的缓存条目,就会删除旧的缓存条目。
http缓存最重要的配置项?cache-control? HTTP返回头。不仅浏览器可以缓存,浏览器和服务器之间的HTTP代理服务器也可以缓存。
- 强制缓存:是强制指向的,在缓存到期前,一定会使用浏览器的缓存。
- 协商缓存:在缓存条目对应的资源发生变化前都使用浏览器缓存。因此协商缓存必须每次都请求服务端。
URL: 用于在互联网定义一个资源? URL 也称为网址
url构成:
- protocol协议:常用的是http协议,https(http+ssh)
- 服务器主机地址:可以是域名,也可以是主机名,或IP地址。像百度就是域名www.baidu.com,DNS(域名解析)服务器会去解析的。http://10.1.192.66:8181/VPNMS/page/main.jsp
- 端口:服务器设定的端口。像URL地址里一般无端口,那是因为服务器使协议的默认端口了,用户使用url访问服务器时,可以省略的。? ? ? ?http协议默认端口是:80端口,如果不写出来,默认就是:80端口? ? ? ?常见的那几个端口要记住,像数据库Oracle:1521; ?Mysql:3306; FTP:21 ; SSH:22
- 路径:访问的资源在服务器下的相对路径,不是在服务器的绝对路径,是服务器上的一个目录或者文件地址。https://baike.baidu.com/item/url/110640?fr=aladdin
- 参数:查询搜索的部分,需要向服务器传入参数,就在这输入。通过问号?连接到path后面,有时候也归类到path中。
加密解密
? ? ? ? 加密解密:将明文信息变成不可读的密文内容,只有拥有解密方法的对象才能够将密文还原成加密前的内容。
- ? ? ? ?对称加密:加密解密用一个秘钥,且加密解密方都知道密钥。? ? ?
- ???????非对称加密:加密用一个,解密用另一个,一般有两个密钥,安全性高速度慢? ? ?
- ????????数字证书 :数字证书类似一个人的身份证一样,由对应的官方的颁发结构颁发的,类似一个人的身份证有姓名,身份证ID,有效期,颁发机构-一般是某某派出所等,数字证书也有类似的形式。
HTTPS和HTTP2.0
- ???????https:在安全的传输层上发送的http。https没有将未加密的http报文发送给TCP,并通过世界范围内的因特网进行传输,它在将http报文发送给TCP之前,先将其发送给了一个安全层 ,对其进行加密。http安全层是通过ssl及其现代替代协议TSL来实现的。? ? 主要是为了解决http协议的安全问题。
- ? ? ??http2.0:为了解决性能问题
http/2.0与http/1.x的区别
- HTTP/2采用二进制格式而非文本格式
- HTTP/2是完全多路复用的,而非有序并阻塞的——只需一个连接即可实现并行
- 使用报头压缩,HTTP/2降低了开销
- HTTP/2让服务器可以将响应主动“推送”到客户端缓存中
|