鄙人学习笔记


文章目录

  • 传输层服务
    • 面向连接的传输服务(基于TCP协议的数据传输)
      • 传输特征
      • 实现手段
      • 适用情况
    • 面向无连接的传输服务(基于UDP协议的数据传输)
      • 传输特点
      • 适用情况

传输层服务

面向连接的传输服务(基于TCP协议的数据传输)

传输特征

提供了可靠的数据传输(3次握手,4次挥手),可靠性指数据传输过程中无丢失,无失序,无差错,无重复。

实现手段

在通信前需要建立数据连接,通信结束要正常断开连接。

①三次握手(建立连接)

  • 第1次握手:客户端向服务器发送消息报文,请求连接.
  • 第2次握手:服务器收到请求后,回复报文,同意建立连接(若不同意,则不会返回报文,则没有第2次和第3次握手).
  • 第3次握手:客户端收到回复,发送最终报文,连接建立.

②四次挥手(断开连接)

  • 第1次挥手:主动方发送报文,请求断开连接
  • 第2次挥手:被动方收到请求后,立即回复,表示准备断开
  • 第3次挥手:被动方准备就绪,再次发送报文,表示可以断开
  • 第4次挥手:主动方收到确定,发送最终报文,完成断开

备注:断开连接,谁先断开?是客户端还是服务端呢?其实是两段都可以主动断开。所以,这里我们就写主动方和被动方。

适用情况

对数据传输准确性有明确要求,传数文件较大,需要确保可靠性的情况。比如:网页获取,文件下载,邮件收发。

面向无连接的传输服务(基于UDP协议的数据传输)

传输特点

不保证传输的可靠性,传输过程没有连接和断开,数据收发自由随意。

适用情况

网络较差,对传输可靠性要求不高。比如:网络视频,群聊,广播。
例如,在视频聊天时,我们的清晰度不是很高。如果要求清晰度很高,则需要在很短的时间内需要传递很多数据。但是,当我们网速不够时,这些数据在很短的时间内是传输不过去的,这时,视频聊天就会很卡,甚至会断开连接。所以,这时就会以视频不清晰(丢失数据)为代价,来保证连接的流畅性。故,此时就允许有数据的丢失,所以就不能用基于TCP协议的数据传输,而用基于UDP的数据传输.

备注:UDP传输效率比TCP高,因为TCP为了保证数据传输的可靠性,有3次握手(建立连接)和4次挥手(断开连接).

网络编程(part8)--传输层服务之TCP和UDP相关推荐

  1. 网络编程之 传输层的协议TCP与UDP

    传输层协议: TCP和UDP的区别: TCP:面向连接(经历三次握手).传输可靠(保证数据正确性,保证数据顺序).用于传输大量数据(流模式).速度慢,建立连接需要开销较多(时间,系统资源). 服务端和 ...

  2. Linux网络编程(传输层协议 )—tcp三次握手/四次挥手

    传输层协议:负责应用程序之间数据传输-TCP/UDP UDP协议: 16位源端-对端端口:用于描述识别通信两端进程 16位数据报长度:能够存储最大数字 65535,(udp报文总大小不超过64k) 1 ...

  3. 计算机网络-传输层(传输层概述,TCP,UDP协议概述)

    文章目录 1. 传输层概述 2. TCP,UDP协议概述 3. 传输层的寻址与端口 1. 传输层概述 传输层是只有主机才有的层次. 传输层功能: 传输层提供进程和进程之间的逻辑通信. 网络层提供主机到 ...

  4. 网络编程-Socket套接字(TCP、UDP、广播和组播通信)

    socket套接字 socket是一个编程接口(网络编程接口) 作用是用来实现网络上不同的主机的应用进程之间进行双向通信 套接字是一种特殊的文件描述符 也就意味着我们使用套接字实现网络通信的时候可以用 ...

  5. 传输层端口、TCP和UDP的概念

    端口 端口号用来识别同一台计算机中进行通信的不同应用程序. 端口用一个16位端口号进行标志.端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程. 简单来说 客户机上运行着多个应用进程, ...

  6. 网络编程-----OSI七层模型、TCP/IP模型

    OSI网络七层模型以国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系为参考模型,不仅包括一系列抽象的术语或概念,也包括具体的协议. 每一层实现各自的功能和协议,并完成与相邻层的接 ...

  7. linux 网络7层模型,Linux网络编程——OSI七层模型、TCP/IP模型

    OSI七层模型 开放式系统互连(Open System Interconnect),模型分为7层,从下往上依次为: 物理层: 数据链路层: 网络层: 传输层: 会话层: 表示层: 应用层: 记不住怎么 ...

  8. python 网络编程 计算机部分基础 和初识tcp和udp

    架构 ---- 程序员开发的一种模式 C/S 架构  客户端/服务器模式 B/S架构  Browser浏览器/服务器模式 B/S架构的优势:统一了应用的接口 软件开发的架构 我们了解的涉及到两个程序之 ...

  9. 网络中的七层协议与TCP/IP五层模型

    socket(套接字)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程 ...

最新文章

  1. 实现3d图片移动_ThingJS官方示例(三):3D标记Marker动效定制化
  2. Redis 秒杀实战
  3. LDD3源码分析之ioctl操作 .
  4. c#rs232与三菱通讯_MCGS 与 FX3U PLC 之间的无线通讯实例
  5. Docker中使用Dockerfile定制化jar启动时:at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
  6. 插件框架实现思路及原理
  7. redis部署与卸载
  8. FFmpeg源代码:avcodec_receive_frame
  9. [html] 写一个垂直的三栏布局,第一栏固定顶部,中间铺满,第三栏固定底部
  10. 巧用svn create patch(打补丁)方案解决定制版需求
  11. magento SEO
  12. flask websocket json_Win10环境下使用Flask配合Celery异步推送实时/定时消息/2020年最新攻略...
  13. 【爬虫剑谱】三卷2章 拾遗篇-有关于re库的使用小结
  14. SPOJ LCMSUM - LCM Sum
  15. jquery easyui-----------tree
  16. python输出艺术字_Python中输出ASCII大文字、艺术字、字符字小技巧
  17. Postman中文版 !!!!傻瓜教程
  18. Python3爬虫 爬句子迷
  19. 午夜分享女人的绝对隐私
  20. 大学cad课要用计算机么,cad2010大学课程

热门文章

  1. 区块链参考资源, 雷达 信号处理
  2. few-shot learning 1.1——零样本学习
  3. java做一个简单的数据库,哪个嵌入式数据库用Java写成一个简单的键/值存储?
  4. MyEclipse中常用的快捷键
  5. 移动端下拉刷新原理和实例
  6. 406(浏览器接收的响应类型和服务器返回的响应类型不匹配)
  7. sed行文本处理工具
  8. Python之类的继承
  9. 1号店Interview小结
  10. Jquery ajax 学习笔记