当前位置: 首页 > news >正文

LINUX网络编程:传输层

目录

1.端口号

1.1知名端口号

1.2注意

2.UDP协议

2.1UDP报头的格式

2.2UDP的特点

2.3UDP的缓冲区


1.端口号

端口号的作用标识一个网络中主机的一个进程。

网络之间通信无非就是,发送端和接受端进程之间的通信,所以通过ip地址找到目标主机之后,在使用端口号找到目标的进程

1.1知名端口号

有一些常用的服务器,他们的端口号是固定的,我们在写服务器绑定端口号的时候要避开这些固定的端口号(知名端口号)。

使用命令

cat /etc/services

查看知名端口号

 

未完全列举

1.2注意

一个进程可以绑定多个端口号,但是一个端口号不能绑定多个进程。

从定义出发来理解这个问题,端口号是用来标识进程的,可以用多个端口号标识一个进程,

但是一个端口号绑定了多个进程,那么主机收到数据之后应该交给哪个进程呢?

2.UDP协议

2.1UDP报头的格式

注意:udp的长度(报头 + 数据)只有16位这么大,换算过来就是64kb,如果说你的数据超过64kb,多出的部分会被丢弃

2.2UDP的特点

1.无连接:知道ip端口直接进行传输

在创建出套接字之后,不用建立连接,直接可以进行通信。

2.不可靠:没有确认机制,也没有重传机制,发送的数据丢了就丢了。

首先不可靠并不是一个缺点,虽然UDP不可靠,但是相比TCP会更快一些,因为不用建立连接,不用维护连接,用于一些对数据传输可靠性要求不高的应用场景。

3.面向数据报:不能灵活的控制读写

使用UDP发送50个字节的数据,每次发10个发5次,接受方就需要接受5次。

2.3UDP的缓冲区

1.无发送缓冲区:udp只想快一点吧数据发送出去,在调用sendto接口,会将数据直接交给内核。

2.接收缓冲区:udp是有接受缓冲区的,但是不能保证接受数据的顺序,如果缓冲区满了,再发过来的数据也会被丢弃。

http://www.lryc.cn/news/441057.html

相关文章:

  • PyTorch框架
  • 分布式系统实战经验
  • 软考(中级-软件设计师)(0919)
  • WhaleStudio 与飞腾 S5000C 处理器完成产品兼容测试!
  • 【Arduino】Arduino使用USB-TTL无法下载程序问题
  • 使用源代码编译R包的过程
  • 基于JavaWeb开发的java springboot+mybatis电影售票网站管理系统前台+后台设计和实现
  • 【论文阅读】Face2Diffusion for Fast and Editable Face Personalization
  • 金钥匙系列:Kubernetes (K8s) 服务集群技术栈学习路线
  • centos远程桌面连接windows
  • Android 系统下:普通应用无缝安装,Launcher 应用安装遭遇罕见障碍解析
  • VMware vCenter Server 8.0U3b 发布下载,新增功能概览
  • Unity 百度AI实现无绿幕拍照抠像功能(详解版)
  • MySQL_表的基本操作
  • 【网站架构部署与优化】源码编译安装LAMP
  • 【Linux】Linux的基本指令(1)
  • Python安装虚拟环境Conda
  • 基于STM32设计的烘干车间远程控制系统(腾讯云IOT)(228)
  • Nginx泛域名 解析的匹配前缀绑定或转发到子目录
  • 黑神话悟空mac可以玩吗
  • Nuxt Kit 中的插件:创建与使用
  • C++(虚构造与虚析构/类型信息运算符/强制类型转换)
  • python毕业设计基于django+vue医院社区医疗挂号预约综合管理系统7918h-pycharm-flask
  • tidb 集群搭建
  • SpringBoot开发——Spring Boot Controller 最佳实践
  • 使用Ubuntu耳机输出正弦波信号
  • Python编程 - 协程
  • 如何在没有备份的情况下恢复 Mac 上丢失的数据
  • SpringBoot:解析excel
  • Tomcat窗口运行修改窗口标题显示项目日期时间