TCP/IP 分层构造
- 应用层:各个应用程序能够定义(应用)各种这样的协定
- 传输层:确保收回的数据可能达到目标主机,实现数据传输
- 网络层:填写数据包地址,抉择数据传输门路
- 数据链路层:交融不同连贯形式的链路,屏蔽网络差别
- 物理层:具体连贯形式,有线,无线,光纤 …
TCP/IP 工作形式
TCP/IP 层次结构的特点
- 下层依赖邻接上层的能力,上层只为间接邻接下层服务
- 下层不晓得上层的工作机制,上层不论下层传输的数据内容
- 不做跨层服务,层次结构中的角色缺一不可
深刻了解网络层(IP 层)
- IP 寻址:IP 地址属于网络层地址,用于标识网络上的主机
- 路由管制:控制数据如何达到主机(如:须要通过哪些路由器转发)
- 无连贯:数据包依据 IP 地址在网络上传递(无需与指标主机建设连贯)
Mac 地址:数据链路层所应用的硬件地址
Mac 地址与网络无关,出厂时写入到网络设备中
当主机从网络上每收到一个数据帧时,首先检查数据中的 MAC 地址。如果是发往本机的数据帧则收下,之后进行其余的解决;否则就将此帧抛弃,不再进行其余的解决。
IP 地址和 MAC 地址
- IP 地址是动静的,不属于某个具体的硬件(MAC 地址隶属于具体硬件)
- IP 地址是网络层应用的地址(用于跨网络投递数据包)
- MAC 地址是数据链路层应用的地址(用于确定指标网络中接收数据的主机)
- 路由器中记录了本网络中主机 IP 地址与 MAC 地址的映射关系(ARP 协定实现)
IP 路由管制
- 为了将数据发给指标主机,所有主机都保护着一张路由表
- 路由表记录了 IP 数据包下一步应该发给哪个路由器
IP 数据转发
-
IP 包转发用的是”尽力服务“策略
- ”尽力服务“指”会致力“,但不保障后果
- 转发时会通过附加信息检查数据合法性,但出现异常不会进行重发
- 以包为单位进行转发,不保障达到(收回之后,石沉网海)
TCP/IP 网络层次结构是否能提供牢靠数据传输?
传输控制协议(Transmission Control Protocol)
-
TCP 在协定实现上提供牢靠数据传输
- TCP 不存在”数据包“的概念,实现了流式传输(数据如流水,无头无尾)
- TCP 外部有服务状态,可能准确晓得数据是否曾经发送胜利,是否被接管 …
- TCP 在行为上 可进行阻塞管制(网络环境变差时,可能调整数据发送速度)
TCP 连贯建设
问:三次交互完结后,建设连贯,为什么是三次?
答:避免旧的反复连贯引起连贯凌乱问题
比方在网络环境比较复杂的状况,客户端可能会间断发送屡次申请。如果只设计成两次握手的状况,服务端只能一接管申请,而后返回申请信息,也不晓得客户端是否申请胜利。这些过期申请的话就会造成网络连接的凌乱。所以设计成三次握手的状况,客户端在接管到服务端 SEQ+ 1 的返回音讯之后,就会晓得这个连贯是历史连贯,所以会发送报文给服务端,通知服务端。所以 TCP 设计成三次握手的目标就是为了防止反复连贯。而后能够设计成四次握手?五次握手?不能够?答案是也是能够的,不过为了节俭资源,三次握手就能够符合实际状况,所以就没必要设计成四次握手、五次握手等等状况
TCP 的天生缺点(DDoS 攻打)
- 客户端收到
SYN,ACK
之后,不再回复最初的ACK
音讯 - 这将导致服务端耗费资源,但并不会理论进行通信
- 当多个傀儡客户端同时对服务端进行”连贯申请“,服务端资源将耗尽
TCP 连贯断开
问:四次交互完结后,连贯断开,为什么是四次?
答:因为 TCP 是全双工通信的
第一次挥手: 当被动方发送断开连接的申请(即 FIN 报文)给被动方时,仅仅代表被动方不会再发送数据报文了,但被动方仍能够接收数据报文。第二次挥手: 被动方此时有可能还有相应的数据报文须要发送,因而须要先发送 ACK 报文,告知被动方“我晓得你想断开连接的申请了”。这样被动不便不会因为没有收到应答而持续发送断开连接的申请(即 FIN 报文)第三次挥手: 被动方在解决完数据报文后,便发送给被动方 FIN 报文;这样能够保障数据通信失常牢靠地实现。发送完 FIN 报文后,被动方进入 LAST_ACK 阶段(超时期待)。第四挥手: 如果被动方及时发送 ACK 报文进行连贯中断的确认,这时被动方就间接开释连贯,进入可用状态。
UDP 的特点:齐全继承网络层工作形式
- 无需连贯,间接指定 IP 地址和端口即可发送数据
- 监听固定端口,只有有数据,通通接管
- 不论网络状况,只有有数据通通可发送
- 不关怀数据是否达到
UDP 的应用场合
- 对数据不敏感,须要实时性的场合(如:直播,实时游戏)
- 网络环境比拟好的场合(如:物联网家居)
- 须要深度定制协定的场合(如:”不丢包的“UDP 协定)
TCP 与 UDP 的区别
- TCP: 瓶口到嘴上了吗?瓶口到嘴上了吗?瓶口到嘴上了吗?好,给你喝水。
- UDP:给你给你都给你,我懒得管你喝不喝失去。