IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 嵌入式网络编程要不要学?答案是要,学计算机当然要弄清楚计算机网络!因此TCPUDP协议是我们需要掌握的,对于入行小白,这也是一面试热点! -> 正文阅读

[网络协议]嵌入式网络编程要不要学?答案是要,学计算机当然要弄清楚计算机网络!因此TCPUDP协议是我们需要掌握的,对于入行小白,这也是一面试热点!

? ? ? 网络编程其实就是计算机网络编程,通常牵扯到计算机通信,所以对于嵌入式也尤为重要,也是面试一热点,今天我来分享一下我所了解的计算机网络!欢迎大神指教!

? ?关于计算机发展至今,有很多历程,首先在1946至1969年计算机网络在此期间萌芽,1946年第一台计算机的诞生,其后20多年,计算机一直在寻求发展,最先开始是以主机为中心通信,至1969年后,发展位15个站点,23台主机,1973年,ARPANet发展成为国际互联网,阿帕网标志着多台计算机网络实现通信!到1970后IOS国际标准化组织进行10年努力,确立了TCP/ip协议。到1986年后NSF国家科学基金网实现了全美以及后来到现在的全球化互联网。

一、IOS模型和TCP/IP体系结构

1.网络体系结构是什么?

网络体系结构即指网络的层次结构和每层所使用协议的集合

2.网络体系结构(IOS模型和TCP/IP)

?IOS模型是一个理想化的模型,尚未完整的实现

TCP/IP协议是工业标准

3.传输层协议(TCP和UPD)

?

TCP:有连接,可靠

UDP:无连接,不保证可靠

TCP:? (Transfer Control Protocol 传输控制协议)

????? (1).是一种面向连接的传输层协议 ?(三次握手)

????? (2).它能提供高可靠性通信(即数据无误,数据无丢失,数据无失序,数据无重复到达)

适用情况:

???? 适合于对传输质量要求较高,以及传输大量数据的通信.

???? 在需要可靠数据传输的场合,通常适用TCP协议

???? MSN/QQ等即时通讯软件的用户登录账户管理相关的功能采用TCP协议

UDP: (User Datagram Protocol 用户数据报协议)

UDP:不保证可靠的无连接协议,在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。

适用情况:

    1. 发送小尺寸数据(如对DNS服务器进行IP地址查询时)
    2. 在接收到数据,给出应答较困难的网络中使用UDP。(如:无线网络)
    3. 适合于广播/组播式通信中。
    4. MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议
    5. 流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输

4.TCP网络通信

(1)tcp网络通信是靠什么通信?

socket需要一种通用的网络编程接口,它是一个特殊的文件描述符,(read,write,close)。

流式套接字(SOCK_STREAM) ----TCP

提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复的发送且按发送顺序接收。内设置流量控制,避免数据流淹没慢的接收方。数据被看作是字节流,无长度限制。

(2)字节序存储

小端序:低字节存储在低地址处。

大端序:低字节存储在高地址处

(3)IP地址

在网络中,IP地址是主机的唯一标识,32位的数---->点十进制”192.168.2.67”

A类:地址范围是1.0.0.0~126.0.0.0

B类:地址范围是128.0.0.0------191.255.255.255

C类:地址范围是192.0.0.0~223.255.255.255

D类:组播地址范围是224.XXX.XXX.XXX-----239.XXX.XXX.XXX

E类:XXX.XXX.XXX.255该网段的广播地址 ?255.255.255.255全网广播

(4)端口号

?1~~~~~~~~1023 (SSH:22 HTTP:80 HTTPS:469)各种系统的端口

?保留端口:1024~~~~5000(不建议使用)

?可以使用:5000-----65535

(5)通信

5.UPD网络通信

(1)UDP网络通信是靠什么通信?

数据报套接字(SOCK_DGRAM)--->UDP

提供无连接服务。数据包以独立数据包的形式被发送,不提供无差错保证,数据可能丢失或重复,顺序发送,可能乱序接收

(2)通信

二、IO模型

?1.阻塞IO

  • 阻塞I/O 模式是最普遍使用的I/O 模式,大部分程序使用的都是阻塞模式的I/O 。
    • 读操作中的read、recv、recvfrom
    • 写操作中的write、send,sendto
    • 其他操作:accept、connect

?2.非阻塞IO

  • 当一个应用程序使用了非阻塞模式的套接字,它需要使用一个循环来不停地测试是否一个文件描述符有数据可读(称做polling)。
  • fcntl()函数

当你一开始建立一个套接字描述符的时候,系统内核将其设置为阻塞IO模式。

可以使用函数fcntl()设置一个套接字的标志为O_NONBLOCK 来实现非阻塞。

int fcntl(int fd, int cmd, long arg);

????? int flag;

????? flag = fcntl(sockfd, F_GETFL, 0);

????? flag |= O_NONBLOCK;

????? fcntl(sockfd, F_SETFL, flag);

3.IO多路复用并发服务器

  • 其基本思想是:
    • 先构造一张有关描述符的表,然后调用一个函数。当这些文件描述符中的一个或多个已准备好进行I/O时函数才返回。
    • 函数返回时告诉进程那个描述符已就绪,可以进行I/O操作。

1.创建监听队列(fd_set xx xx)

2.监听的套接字加入到监听队列FD_SET (listenfd &xx)

3阻塞监听select函数

4.遍历哪个文件描述符发生变化先找到监听套接字然后接收链接将新的套接字加入监听队列然后通信。

?这样就能多个客户端连接服务器,服务器也能处理。

计算机网络编程要学习的还很多这只是一部分内容,欢迎补充!

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 11:52:32  更:2022-09-13 11:56:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 21:18:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码