网络编程知识点总结(1)

news2024/12/23 22:24:39

TCP/UDP对比

1.TCP面向连接 (如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接

2.TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付

3.TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流:UDP是面向报文的UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)


4.每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信       

5.TCP首部开销20字节;UDP的首部开销小,只有8个字节             

6.TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

端口号作用


一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务SMTP服务等
这些服务完全可以通过I个IP地址来实现。那么,主机是怎样区分不同的网络服务呢? 显然不能只靠IP地址,因为IP 地址与网络服务的关系是一对多的关系。
实际上是通过“IP地址+端口号”来区 分不同的服务的。端口提供了一种访问通道,
服务器一般都是通过知名端口号来识别的。例如,对于每个TCP/IP实现来说,FTP服务器的TCP端口号都是21,每个Telnet服务器的TCP端口号都是23,每个TFTP(简单文件传送协议)服务器的UDP端口号都是69。

字节序

一、概念

字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序,是在跨平台和网络编程中,时常要考虑的问题。

二、分类

字节序经常被分为两类:

1. Big-Endian(大端):高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。

2.Little-Endian(小端):低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。

网络字节序 = 大端字节序

三、高低地址与高低字节

高低地址:

C程序映射中内存的空间布局大致如下:

最高内存地址 0xFFFFFFFF

栈区(从高内存地址,往 低内存地址发展。即栈底在高地址,栈顶在低地址)

堆区(从低内存地址 ,往 高内存地址发展)

全局区(常量和全局变量)

代码区

最低内存地址 0x00000000

高低字节
在十进制中靠左边的是高位,靠右边的是低位,在其他进制也是如此。例如 0x12345678,从高位到低位的字节依次是0x12、0x34、0x56和0x78。

网络字节序 就是 大端字节序:4个字节的32 bit值以下面的次序传输,首先是0~7bit,其次8~15bit,然后16~23bit,最后是24~31bit

主机字节序 就是 小端字节序,现代PC大多采用小端字节序。

四、例子

字节序转换api

#include <netinet/in.h>
uint16_t htons(uint16_t host16bitvalue);//返回网络字节序的值                                                  uint32_t htonl(uint32_t host32bitvalue);//返回网络字节序的值                                                          uint16_t ntohs(uint16_t net16bitvalue); //返回主机字节序的值                                                           uint32_t ntoh(uint32_t net32bitvalue); //返回主机字节序的值

h代表host,n代表net,s代表short (两个字节),l代表long (4个字节).通过上面的4个函数可以实现主机字节序和网络字节序之间的转换。有时可以用INADDR ANYINADDR ANY指定地址让操作系统自己获取

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

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

相关文章

【蓝桥刷题】备战国赛——区间修改、区间查询

蓝桥杯线段树模板题——区间修改、区间查询 &#x1f680; 每日一题&#xff0c;冲刺国赛 &#x1f680; 题目导航&#xff1a; 区间修改、区间查询 &#x1f387;思路&#xff1a;线段树 &#x1f531;思路分析&#xff1a; 本题涉及到了对区间操作的问题&#xff0c;因此&a…

《商用密码应用与安全性评估》第四章密码应用安全性评估实施要点4.2密码应用基本要求与实现要点

4.2.1 标准介绍 2018年2月8日&#xff0c;GM/T0054-2018《信息系统密码应用基本要求》由国家密码 管理局发布并实施。 ① 总体要求规定了密码算法、密码技术、密码产品和密码服务应当符合商用密码管理的相关规定&#xff0c;满足标准规范的相关要求&#xff0c;即合规性。 ②密…

校园综合能效管理平台建设的意义

摘要&#xff1a;为响应国家绿色校园建设的号召&#xff0c;切实提高高校能源利用水平&#xff0c;推动学校能源资源合理配置&#xff0c;服务学校高质量发展大局&#xff0c;根据教育部印发的《关于开展节能减排学校行动的通知》《关于勤俭节约办教育建设节约型校园的通知》《…

ESP8285 多个bin文件合并烧录

可通过两种方式烧录固件&#xff0c;一种是基于esp-idf开发时&#xff0c;中命令终端执行make flash命令烧录&#xff1b;二是使用ESPFlashDownloadTool工具。 bin文件说明 ESP8285/ESP8266的固件一般包含4个bin文件。 查看各bin文件的路径 以带OTA的固件为例&#xff0c;在…

chatgpt赋能python:Python中的乘方操作

Python中的乘方操作 作为一种流行的编程语言&#xff0c;Python内置了许多强大的数学运算工具。其中&#xff0c;乘方操作是一个非常常见的数学操作&#xff0c;它可以快速地计算一个数的任意次幂。本文将介绍Python中乘方操作的用法&#xff0c;并提供了一些相关的示例代码。…

Git服务器集成 · GitHub 服务器(二)

本篇文章旨在分享本人在学习Git时的随笔记&#x1f929; 文章目录 1、注册账号2、创建新的仓库3、本地仓库的基本操作指令4、SSH 免密操作4.1、本地生成 SSH 密钥4.2、集成用户公钥 5、设定全局用户6、创建本地库以远程地址7、新增&#xff0c;提交本地仓库文件8、推送到 GitHu…

某马大数据全套视频

某马大数据 需要的私信&#xff1a;某马大数据 01、阶段一 Python大数据开发基础 01、第一章大数据介绍及开发环境 02、第二章 linux命令 03、第三章 MySQL数据库 04、第四章 excel的使用 05、第五章 kettle的使用 06、第六章 数据分析及可视化 07、第七章 大数据框架与…

修改gd32f305时钟

如题&#xff0c;移植GD32F305芯片驱动&#xff0c;修改时钟的方法。 硬件外部时钟为8MHz&#xff0c;官方demo文件为25MHz&#xff0c;基于此修改时钟配置。 1、选择system_gd32f30x.c并修改 如下图 1.1&#xff09;注意查看 __HXTAL 的时钟是否为硬件电路对应的实际大小。…

2023 华为 Datacom-HCIE 真题题库 11--含解析

单项选择题 1.[试题编号&#xff1a;190685] &#xff08;单选题&#xff09;通过iMasterNCE-Campus部署的虚拟化园区网络场景中&#xff0c;以下关于“添加设备”的描述中&#xff0c;错误的是哪一项&#xff1f; A、IMaster NCE-Campus支持通过设备角色添加设备 B、IMaster …

概率论:样本与总体分布,Z分数与概率

参考书目&#xff1a;《行为科学统计精要》&#xff08;第八版&#xff09;——弗雷德里克J格雷维特 数据及其样本的分布 描述一组数据分布 描述一组样本数据的分布 描述样本数据的均值和整体数据一样&#xff0c;但是样本标准差的公式除以了n-1&#xff0c;这里引入自由度的…

DAY05_Maven

目录 1 Maven1.1 Maven简介 2 Maven安装配置2.1 下载2.2 配置maven的环境变量2.3 MavenSetting.xml文件配置2.4 检测 3 Maven基本使用3.1 Maven常用命令3.2 Maven生命周期3.2.1 default 构建生命周期 4 IDEA配置Maven4.1 IDEA配置 Maven 环境4.2 Maven 坐标详解4.3 IDEA 创建 M…

优漫动游:ui设计面试问题及答案?

ui设计面试问题及答案&#xff1f;面试是每个大学生都会遇到的一种求职形式&#xff0c;尤其是对于一些不太了解面试的同学来说。那么面试中的问题究竟有哪些呢&#xff1f;这些问题到底有没有标准答案呢&#xff1f;本文优漫小编就来给大家分享一下关于UI设计面试中的几个问题…

Spring事务简介案例

文章目录 1.Spring事务简介2.案例3.步骤3.1 添加注解Transactional3.2 定义事务管理器3.3 EnableTransactionManagement开启事务驱动 1.Spring事务简介 可以在业务层上开的一种事务&#xff0c;开在业务层上的好处是&#xff0c;可以将业务层中方法里面所包含的数据层操作放到…

【学习心得】Linux下的Python虚拟环境搭建

问题描述&#xff1a;本文解决在Linux系统&#xff08;Ubuntu举例&#xff09;中如何实现Python的多版本以及搭建Python虚拟环境。 一、Linux系统中实现Python多版本 1、第一步&#xff1a;在官网中找到对应Python版本的tar压缩包的下载链接。 在历史版本中找到你想要的Pytho…

实验篇(7.2) 03. 部署物理实验环境(下)❀ 远程访问

【简介】考虑到有很多人初次接触FortiGate防火墙硬件&#xff0c;因此在讲解部署物理实验环境的时候&#xff0c;防火墙的初次登录内容介绍的比较多&#xff0c;以致于需要将文章分下、下二篇。下篇我们重点介绍服务器的配置及部署。 防火墙的接口规划 在部署服务器之前&#x…

基于MCGS嵌入版组态软件的船舶绝缘在线监测装置

关注acrelzxz&#xff0c;了解更多详细内容 摘要:针对船舶供电系统电缆的绝缘状态问题&#xff0c;设计了一款电缆绝缘在线监测装置。装置采用低频交流注入法&#xff0c;在IT系统的中心点注入低频的交流信号&#xff0c;通过取样电路和A/D量化检测注入信号在电路中的响应&…

加密与解密 调试篇 动态调试技术 (二)-常见断点

目录 常见的断点 1.INT 3 断点 检测 绕过 2.硬件断点 原理 我们给出硬件中断的例子 删除硬件断点 3.内存断点 原理 例子 删除 区别 总结 4.内存访问一次性断点 5.消息断点 例子 删除 6.条件断点 &#xff08;1&#xff09;按寄存器条件中断 &#xff08;2&…

渠道投放数据建设

广告投放渠道识别方式 1、渠道包&#xff1a;每个渠道分配不同的渠道包&#xff0c;用户下载APP之后根据他下载的是哪个渠道包来识别渠道来源&#xff0c;比较常见于应用商店的投放。但是需要注意渠道包可能会导致作弊情况&#xff0c;例如用虚拟机下载渠道包来模拟下载数据等…

Linux介绍和vm17pro安装 和Centos以及vm简单操作

Linux 介绍 概述 linux 怎么读&#xff0c; 不下10 种linux 是一个开源、免费的操作系统&#xff0c;其稳定性、安全性、处理多并发已经得到业界的认可&#xff0c;目前很多企业级的项目(c/c/php/python/java/go)都会部署到Linux/unix 系统上。常见的操作系统(windows、IOS、…

ChatGPT工作提效之使用百度地图在首都为六一儿童节献爱心(多边形覆盖物、文本标注、自动获取经纬度、爱心函数)

ChatGPT工作提效系列 ChatGPT工作提效之初探路径独孤九剑遇强则强ChatGPT工作提效之在程序开发中的巧劲和指令(创建MySQL语句、PHP语句、Javascript用法、python的交互)ChatGPT工作提效之生成开发需求和报价单并转为Excel格式ChatGPT工作提效之小鹅通二次开发批量API对接解决方…