网络编程1:网络编程概述

网络编程概述

进程间通信方式
管道:父子,兄弟进程之间的通信方式
消息队列:在内核里面经营一系列的消息队列
共享内存:通过内核,创建共享空间
信号:A进程通过B进程pid标识符发消息
信号量:对临界资源,共享内存进行PUA一些控制
特点
依赖于linux内核。
造成缺陷
无法多机通信。
多机通信
linux与Android,iOS,ARM之间的通信
网络中的地址
由IP地址和端口号构成。
IP地址是一台设备的唯一标识,端口号识别进程。
网络数据交流
协议(数据交流格式):http,tcp,udp。
Linux网络编程(socket)使用到的协议:tcp,udp
socket网络编程:套接字网络编程
socket套接字网络编程:
tcp:面向连接(打电话)
udp:面向报文(发短信–发送数据量大(视频))

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服务
这些服务完全可以通过一个IP地址来实现。那么,主机是怎样区分不同的网络服务的?显然不能只靠IP地址,因此IP地址与网络服务的关系是一对多的关系。

实际上:通过“IP地址+端口号”来区分不同的服务。

端口提供一种访问通道,服务器一般都是通过知名端口号来识别的。例如,对于每个TCP/IP实现来说,FTP服务器的TCP端口号都是21,每个Telnet服务器的TCP端口号为23.每个TFTP(简单文件传送协议)服务器的UDP端口号为69.

扩展学习:Linux网络编程——TCP/IP概述

猜你喜欢

转载自blog.csdn.net/weixin_40734514/article/details/108546733