博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TCP 、 UDP、三次握手、四次挥手
阅读量:6573 次
发布时间:2019-06-24

本文共 1476 字,大约阅读时间需要 4 分钟。

TCP 、 UDP、三次握手、四次挥手

  • 运输层为应用层提供端到端的的通信服务

  • UDP:无连接、不可靠的协议。DNS DHCP 都是使用的udp协议

  • TCP:TCP协议是面向连接的、可靠传输、有流量控制,拥塞控制,面向字节流传输等很多优点的协议。其最终功能和UDP一样,在端和端之间进行通信,但是和UDP的区别还是很大的。

  • 三次握手:C SYN S —— S ACK C —— C ACK S

  • 为什么需要三次握手:假设没有第三次握手,客户端发送一个连接请求报文过去,但是因为网络延迟,在等待了一个超时时间后,客户端就会在重新发一个请求连接报文过去,然后正常的进行,服务器端发回一个确认连接报文,然后就开始通讯,通讯结束后,那个第一次因为网络延迟的请求连接报文到了服务器端,服务器端不知道这个报文已经失效,也发回了一个确认连接报文,客户端接收后,发现自己并没有发送连接请求(因为超时了,所以就认为自己没有发),所以对这个确认连接请求就什么也不做,但是此时服务端不这么认为,他认为i连接已经建立了,就一直打开着等待客户端传数据过来,这就造成了极大的浪费。如果有了第三次握手,那么客户端就可以通知服务器了。所以第三次握手也很重要。

    如果没有第三次握手,服务端返回ACK 就开始等待客户端的数据,但是没有管客户端有没有收到或者承认,这样会造成浪费

  • 四次挥手:C FIN S —— S ACK C —— S FIN C —— C ACK S

  • 为什么需要四次挥手:

计算机网络结构

应用层 HTTP

与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的,从事字工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字的程序员就需要实现OSI的第7层。示例:TELNET,HTTP,FTP,NFS,SMTP等。

表示层

这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:加密,ASCII等。

会话层

它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的,则用数据代表表示层。示例:RPC,SQL等。

传输层 TCP/UDP

这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一上对不同应用的的输入进行复用,还包括对收到的顺序不对的的重新排序功能。示例:TCP,UDP,SPX。

网络层 IP

这层对端到端的包传输进行定义,它定义了能够标识所有结点的,还定义了实现的方式和学习的方式。为了适应长度小于包长度的,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。

数据链路层

它定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。

物理层

OSI的物理层规范是有关的特这些规范通常也参考了其他组织制定的标准。连接头、帧、帧的使用、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。

转载于:https://juejin.im/post/5b690c24f265da0f6523aab6

你可能感兴趣的文章
如何正确上传一张图片?
查看>>
Android基础 写给新手的Android环境配置
查看>>
界面无小事(六):来做个好看得侧拉菜单!
查看>>
Spring 数据处理框架的演变
查看>>
为什么要使用git pull --rebase?
查看>>
SpringBoot集成gRPC微服务工程搭建实践
查看>>
requestAnimationFrame用法
查看>>
iOS 蓝牙使用小结 bluetooth
查看>>
computed、watch和methods特性比较
查看>>
MySQL——优化ORDER BY语句
查看>>
iOS:重识Transform和frame
查看>>
spring boot / cloud (二十) 相同服务,发布不同版本,支撑并行的业务需求
查看>>
docker任务调度工具: ofelia
查看>>
分布式Redis深度历险-复制
查看>>
微服务架构下的轻量级定时任务解决方案
查看>>
java架构-Spring MVC 与 Servlet
查看>>
RN与原生交互(一)——基本页面跳转
查看>>
android消息机制—Looper
查看>>
分布式大型互联网企业架构
查看>>
浅谈前端响应式设计(二)
查看>>