Linux网络编程
小虾米_2018
专注于C、C++、嵌入式系统、网络、驱动编程~
展开
-
socket()编程接口及编程实践
Socket本身有“插座”的意思,在Linux环境下,用于表示进程间网络通信的特殊文件类型。本质为内核借助缓冲区(队列)形成的伪文件。既然是文件,那么理所当然的,我们可以使用文件描述符引用套接字。与管道类似的,Linux系统将其封装成文件的目的是为了统一接口,使得读写套接字和读写文件的操作一致。区别是管道主要应用于本地进程间通信,而套接字多应用于网络进程间数据的传递。在TCP/IP协议中,“I...原创 2019-05-28 12:55:11 · 1025 阅读 · 0 评论 -
地址解析协议(ARP)
IP地址与MAC地址要理解ARP协议的工作原理必须先理解IP地址和MAC地址的区别,MAC地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址(IP地址使用软件实现的)如下图:在发送数据时,数据从高层到低层,然后才到通信链路上传输。使用IP地址的IP数据报一旦交给了数据链路层,就被封装成了MAC帧。MAC帧在传送时使用的源地址和目的地址都是硬件地址...原创 2019-05-08 19:49:47 · 2909 阅读 · 0 评论 -
传输控制协议(TCP)、IP协议
传输控制协议(TCP)传输控制协议( Transmission Control Protocol),简称TCP协议,它在原有IP协议基础上,增加了确认重发、滑动窗口和复用/解复用等机制,提供一种可靠的、面向连接的字节流服务。1.TCP的特点TCP协议的特点如下所述。字节流的服务:使用TCP协议进行传输的应用程序之间传输的数据可视为无结构的字节流,基于字节流的服务没有字节序问题的困扰...原创 2019-06-03 12:07:05 · 3259 阅读 · 0 评论 -
OSI模型与TCP/IP参考模型
OSI模型OSI模型,即开放式通信系统互联参考模型(Open System Interconnection,OSI/RM,Open Systems Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。七层结构记忆方法:应、表、会、传、网、数、物。OSI七层模型详解OS...原创 2019-05-06 17:21:18 · 1118 阅读 · 1 评论 -
网络通信基础
网络通信概述从进程间通信说起:网络域套接字socket,网络通信其实就是位于网络中不同主机上面的2个进程之间的通信。网络通信的层次硬件部分:网卡 操作系统底层:网卡驱动 操作系统API:socket接口 应用层:低级(直接基于socket接口编程) 应用层:高级(基于网络通信应用框架库) 应用层:更高级(http、网络控件等)网络通信的发展历程单机阶段 局域网阶段...原创 2019-05-06 15:18:55 · 1069 阅读 · 0 评论 -
用户数据报文协议(UDP)
UDP是一种基于IP协议的不可靠网络传输协议,在IP数据的位置如下图所示。UDP数据在IP数据的位置1.UDP协议的特点UDP是无连接的,即传输数据时不需要建立或释放连接,减少了开销和发送数据之前的时延。 UDP使用尽最大努力交付,即不保证可靠交付。 UDP是面向报文的。对应用程序交下来的报文在添加首部后就向下交付IP层。对应用层交下来的报文即不合并也不拆分,而是保留这些报文的边界。即...原创 2019-05-08 15:59:19 · 2573 阅读 · 0 评论 -
UDP通信
1.UDP服务器传输层主要应用的协议模型有两种,一种是TCP协议,另外一种则是UDP协议。TCP协议在网络通信中占主导地位,绝大多数的网络通信借助TCP协议完成数据传输。但UDP也是网络通信中不可或缺的重要通信手段。 相较于TCP而言,UDP通信的形式更像是发短信。不需要在数据传输之前建立、维护连接。只专心获取数据就好。省去了三次握手的过程,通信速度可以大大提高,但与之伴随的通信的稳定性和正...原创 2019-07-05 10:43:17 · 426 阅读 · 0 评论