计算机网络 基础知识 套接字 编程

在网络中通过IP地址来标识和区别不同的主机,通过端口号来标识和区分一台主机中的不同应用进程,端口号拼接到IP地址,即构成了套接字(Socket)。在网络中采用发送方和接收方的套接字来识别断电。套接字,实际上是一个通信端点,即:

套接字=IP地址:端口号

她唯一的标识网络中的一台主机上的一个应用进程。

在网络通信中,主机A发送给主机B的报文,包含目的端口号源端口号,源端口号是“返回地址”的一部分,即当主机B需要发回一个报文给主机A的时候,主机B到主机A的报文中的目的端口号便是主机A到主机B的报文中的源端口号(完全的返回地址是主机A的IP地址和源端口号)。

无连接服务与面向连接服务

TCP/IP协议族在IP层之上,使用了两个传输协议,一个是面向连接的传输控制协议(TCP),采用TCP的时候,传输层向上提供的是一条全双工的可靠逻辑信道,另一个是无连接的用户数据报协议(UDP),采用UDP的时候,传输层向上提供的是一条不可靠的逻辑信道。

TCP提供面向连接的可靠服务,通信双方在传送数据之前必须先建立连接,然后基于此链接进行可靠的数据传输,数据传输结束后要释放连接。TCP不提供广播或者多播服务,TCP为了实现可靠的数据传输,必须要增加许多的举措,比如确认、流量控制、计时器以及连接管理等。这不仅对事的协议数据单元的首部增大很多,还要占用需要的处理机资源。因此TCP主要适用于可靠性更重要的场合,如文件传输协议(FTP)、超文本传输协议(HTTP)、远程登录(HELNET)等。

UDP提供无连接的不可靠服务,通信双方在传送数据之前不需要建立连接,接收方的传输在收到UDP用户数据报后,无需给发送方发回任何确认。UDP在IP层之上进提供两个附加服务;多路复用和对数据的错误检查,IP层知道,怎么把分组投递给一台主机,但是不知掉怎么把她们投递给主机上的具体应用。UDP在传送数据之前不需要先建立连接,远程主机的传输层收到UDP报文后,不需要给出任何确认。因为UDP比较简单,所以执行速度比较快、实时性好,使用UDP地应用主要包括小文件传送协议(TFTP),DNS,SNMP和实时传输协议(RTP)。

通信子网,包括,1,物理层,2,数据链路层,3,网络层,主要负责数据通信,资源子网是OSI参考模型的上三层,传输层的主要任务是向高层用户屏蔽下面通信子网的细节(如,网络拓扑,路由拓扑等)。

OSI参考模型中,提供端到端的透明数据传输服务差错控制流量控制的层是传输层

传输层为进程之间提供逻辑通信

关于传输层的面向连接服务的特性是,保证可靠和顺序交付

UDP数据报,UDP尽在IP层的数据报服务至上增加了两个最基本的功能,复用和分用,以及差错检测。

如果应用开发者,选择UDP而非TCP,则应用程序几乎直接与IP打交道。

UDP协议的特点:

1,UDP无虚建立连接,因此UDP不会引入建立连接的时延。

2,无连接状态,TCP需要在端系统中维护连接状态,次连接状态包括接受和发送缓存,拥塞控制参数和序号与确认好的参数。而UDP,既不维护连接状态,也不跟踪这些参数。因此,当某些专用服务器使用UDP地时候,一般都能支持更多的活动客户机。

3,UDP地首部开销小,

4,UDP没有拥塞控制,因此网络中的拥塞不会影响源主机的发送速率,某些实时应用要求源主机以稳定的速率发送数据,能容忍一些数据的丢失,但不允许有太大的时间延迟。

5,UDP支持,一对一,一对多,多对一,多对多的交互通信。

UDP经常用于一次性传输较少数据的网络应用,如DNS,SNMP等,因为对于这些应用,如果采用TCP,则将为连接创建,维护和拆除带来不小的开销。UDP页经常用于多媒体应用,如IP电话,实时视频会议,流媒体等等。显然,可靠的数据传输对于这些应用来说并不是最重要的,但是TCP的拥塞控制会导致数据出现较大的延迟,这是他们不可容忍的。

UDP不保证可靠交付,但是这并不意味着应用对于淑静的要求是不可靠的,所有维护可靠性的工作都可以由用户在应用层完成。应用开发者,可以根据应用的需求来灵活的设计自己的可靠性机制。

UDP是面向报文的,发送方UDP对应用层交下来的报文,在添加首部后就向下交付给IP层,一次发送一个报文,记不合并,也不拆分,而是保留这些报文的边界。接收方UDP对IP层交上来UDP数据报,在去除首部后就原封不动的交付给上层应用进程一次交付一个完整的报文。因此,报文是不可分割的,是UDP数据报处理的最小单位。因此,应用程序,必须选择合适大小的报文,如果报文太长,UDP把他交给IP层后,可能会导致分片。如果报文太短的话,UDP把他交给IP层后,会是的IP数据包的首部的相对长度太大,两者都会降低IP层的效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/737651.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32CubeIDE基础学习-STM32CubeIDE软件新增工程文件夹

STM32CubeIDE基础学习-STM32CubeIDE软件新增工程文件夹 文章目录 STM32CubeIDE基础学习-STM32CubeIDE软件新增工程文件夹前言第1章 添加文件夹第2章 添加文件路径2.1 相对路径方法2.2 绝对路径方法 总结 前言 在编程的过程中,如果需要在原有的工程基础上新增其它的…

SQLite表添加主键

CREATE TABLE [user]([user_name] VARCHAR(128) NOT NULL, [address] VARCHAR(128) NOT NULL, [mobile] VARCHAR(15) NOT NULL, [user_id] INTEGER NOT NULL,CONSTRAINT pk PRIMARY KEY (user_id));CONSTRAINT pk PRIMARY KEY (user_id) pk是键名(添入你想填的名称&…

哈希表|202.快乐数

力扣题目链接 int getSum(int n) {int sum 0;while (n) {sum (n % 10) * (n % 10);n / 10;}return sum; }bool isHappy(int n){int sum getSum(n);int hash[820] {0};while (sum ! 1) {if (hash[sum] 1) {return false;} else {hash[sum];}sum getSum(sum);}return true…

关于做副业、做自媒体:说几句扎心的话

今天在某乎看到一个问题:想尝试自媒体,想了一个月了,都没想好怎么起步,咋整呀? 恰好昨天陪退休老妈去探店,有感而发,就来唠一唠。 一、退休老妈的副业经历 老妈去年年初开始,在某…

探索未来:2024年人工智慧驱动的 AI + 研发趋势

#2024 AI 辅助研发趋势# 当我们站在2024年的风口浪尖时,人工智慧辅助研发的格局即将发生翻天覆地的变化。2023年人工智慧的快速发展为各行业的突破性进步铺平了道路。从研发流程的数位转型,到 AI 开发工具2.0 的出现,未来充满了超越 Copilot…

C++中的内部类

一、内部类的概念 如果一个类定义在另一个类的内部,那么这个类就叫做内部类。(内部类其实和一个独立的类没有区别,只是它会受到外部类访问限定符以及类域的限制,且是外部类的友元) 如果B类是A类的内部类,…

基于数组的顺序表删除操作

删除算法需要注意&#xff1a; 1. 列表长度为0时不能再删除 2.每次删除后长度减一 3.输入删除的数据在原来列表中不存在&#xff0c;不需要改变原列表 #include <iostream> #define MAX 100; using namespace std;int search(int arr[],int len,int n) {for(int i0; i…

【2024泰迪杯】A 题:生产线的故障自动识别与人员配置 Python代码实现

【2024泰迪杯】A 题&#xff1a;生产线的故障自动识别与人员配置 Python代码实现 1 问题 一、问题背景 随着新兴信息技术的大规模应用&#xff0c;工业生产线的智能化控制技术日益成熟。自动生产线 可以自动完成物品传送、物料填装、产品包装和质量检测等过程&#xff0c;极…

LeetCode - 寻找数组的中心

先学习一下前缀和吧 LCR 012.寻找数组的中心LCR 012. 代码解析 在读题读到左侧元素之和等于右侧所有元素之和的时候&#xff0c;我觉得可以用前缀和&#xff0c;然后结合下面的示例&#xff0c;模拟了一下发现确实可以。 我的想法是搞两个数组&#xff0c;一个来存从左到右数…

微信小程序(五十六)逆地址解析示范

注释很详细&#xff0c;直接上代码 温馨提醒&#xff1a;记得给自己的key配额&#xff0c;基础操作与前提配置参考本专栏第五十四篇 新增内容&#xff1a; 1.逆地址解析基础示范 2.开放经纬度参数 3.只列举修改的js部分&#xff0c;前提配置请看 温馨提醒 源码&#xff1a; ind…

软件开发人员从0到1实现物联网项目:需求分析

文章目录 前言市场调研线下考察竞品参考 项目目标功能需求用户端功能需求商家功能需求系统管理功能需求 非功能需求性能安全性易用性扩展性可靠性 小结 前言 上文对实现自助棋牌室项目涉及到的技术做了调研&#xff0c;尤其是物联网技术。那接下来就是对需求进行一番分析了&am…

力扣 239. 滑动窗口最大值

题目链接 chatgpt写的代码&#xff0c; 首先这是个滑动窗口的问题&#xff0c;要用单调队列来解决&#xff0c;这个就是毋庸置疑的&#xff0c;就直接接受就行了 其次&#xff0c;不知道单调队列是啥&#xff0c;知道单调队列是啥了&#xff0c;又不知道单调队列该如何实现&…

王道机试C++第 5 章 数据结构二:队列queue和21年蓝桥杯省赛选择题Day32

目录 5.2 队列 1&#xff0e;STL-queue 课上演示&#xff1a; 基本代码展示&#xff1a; 2. 队列的应用 例:约瑟夫问题 No. 2 题目描述&#xff1a; 思路提示&#xff1a; 代码展示&#xff1a; 例&#xff1a;猫狗收容所 题目描述&#xff1a; 代码表示&#xff1…

蓝桥杯-List集合

目录 List集合实例化 List集合实例化步骤 常用方法 ArrayList方法 1&#xff1a;add(Object element) 2&#xff1a;size() 3&#xff1a;get(int index) 4&#xff1a;isEmpty() 5:contains(Object o) 6&#xff1a;remove(int index) 总结ArrayList list集合的特点…

Web服务器需要警惕的一些安全隐患

Web服务器需要警惕的一些安全隐患有哪些&#xff0c;今天德迅云安全就带您来了解下。熟悉了解了就知道怎么规避风险。不过无论是什么漏洞&#xff0c;都体现着安全是一个整体的真理&#xff0c;考虑Web服务器的安全性&#xff0c;必须要考虑到与之相配合的操作系统。 1.物理路径…

应用方案 | DCDC电源管理芯片MC34063A

DCDC电源管理芯片 MC34063A MC34063A 为一单片 DC-DC 变换集成电路&#xff0c;内含温度补偿的参考电压源&#xff08;1.25V&#xff09;、比较器、能有效限制电流及控制工作周期的振荡器&#xff0c;驱动器及大电流输出开关管等。外配少量元件&#xff0c;就能组成升压、…

Redis缓存、缓存穿透、缓存雪崩、缓存击穿

1.认识Redis缓存 先来认识一下缓存&#xff0c;再了解redis用作缓存时的作用和问题&#xff0c;以及如何解决redis缓存在的问题。 1.1.什么是缓存 1.2.缓存的优缺点(作用和成本) 2.redis缓存的作用 正常客户端请求服务器&#xff0c;服务器会直接访问数据库&#xff0c;这有…

Selenium自动化测试细节讲解

与以前瀑布式开发模式不同&#xff0c;现在软件测试人员具有使用自动化工具执行测试用例套件的优势&#xff0c;而以前&#xff0c;测试人员习惯于通过测试脚本执行来完成测试。 但自动化测试的目的不是完全摆脱手动测试&#xff0c;而是最大程度地减少手动运行的测试。自动化…

R语言系列2——R语言数据处理技巧

目录 写在开头1. 数据导入与导出1.1 基础操作详解1.1.1 导入数据1.1.2 导出数据 1.2 高级技巧详解1.2.1 自定义导入1.2.2 自定义导出 1.3 常见问题 2. 数据清洗基础2.1 缺失值处理2.1.1 删除含缺失值的行或列2.1.2 填充缺失值2.1.3 预测模型填充2.1.4 使用特定值填充 2.2 数据类…

【智能家居】东胜物联ODM定制ZigBee网关,助力能源管理解决方案商,提升市场占有率

背景 本文案例服务的客户是专业从事智能家居能源管理的解决方案商&#xff0c;其产品与服务旨在帮助用户监测、管理和优化能源消耗&#xff0c;以提高能源使用效率。 随着公司的扩张&#xff0c;为了增加市场占有率&#xff0c;他们希望找到更好的硬件服务支持&#xff0c;以…