Linux网络编程(TCP/IP/UDP)

  • TCP/IP 是互联网的基础, TCP代表传输控制协议,IP代表互联网协议。目前有两个版本IP,一个是32位地址的IPv4 和一个是128位的 IPv6 。
  • IP主机和IP地址

       每一个注意由一个32位的IP地址来标识。为了方便起见,通常用32位的IP低质号用记点法标识例如:134.121.64.1  也可以用主机名标识如 dns1.eec.wsu.edu 。实际上应用程序通常使用主机名而不是IP地址。因为给定其中一个,我们都可以通过dns(域名系统)服务器找到另外一个,两者之间可以相互转换。

        IP地址分为两部分 NeiworkID 和 HostID 字段。其中,IP 可以分为A~E类。例如B类IP分为一个16位NeiworkID,前两位是10 。发往UP地址的数据包首先被发送到具有相同networkID的路由器默认IP地址位127.0.0.1.

  • TCP 

       传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。

  •  UDP

       Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。

       应用层的数据被传到传输层会添加TCP 或者UDP包头来标识使用的传输协议。合并后的数据被传到IP网络层,添加一个包含IP地址的IP报头来标识发送和接收主机。然后合并后的数据传递到网络链路层,再次将数据分成多个帧,添加发送和接收网络的地址,用于在物理网络之间的传输。

  •  套接字

       套接字是通信的基石,是支持TCP/IP协议的路通信的基本操作单元。可以将套接字看作不同主机间的进程进行双间通信的端点,它构成了单个主机内及整个网络间的编程界面。套接字存在于通信域中,通信域是为了处理一般的线程通过套接字通信而引进的一种抽象概念。套接字通常和同一个域中的套接字交换数据(数据交换也可能穿越域的界限,但这时一定要执行某种解释程序),各种进程使用这个相同的域互相之间用Internet协议簇来进行通信。

       

服务器套接字编程步骤如下:

1.创建socket;
2.绑定socket和端口号;
3.监听端口号;             (UDP省略)
4.接收来自客户端的连接请求;(UDP省略)
5.从socket中读取字符;
6.发送消息回客户机。

客户端套接字编程步骤如下: 

1.创建socket;

2.连接指定

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux TCP/IP 是指在 Linux 操作系统中实现的 TCP/IP 协议栈。要深入了解 Linux TCP/IP,有几个关键概念和组件需要理解。 1. TCP/IP 协议栈:TCP/IP 是一组网络通信协议,包括传输控制协议(TCP)和互联网协议(IP)。Linux TCP/IP 协议栈是实现这些协议的软件组件集合,负责处理网络通信。 2. 网络接口:Linux TCP/IP 使用网络接口来连接计算机与网络网络接口可以是物理网卡(如以太网卡)或虚拟网卡(如回环接口 lo)。 3. IP 地址:IP 地址用于在网络中唯一标识主机。Linux 提供了各种工具和配置文件来管理 IP 地址,如 ifconfig 和 ip 命令。 4. 路由表:路由表用于决定数据包如何在网络中传输。Linux 使用路由表来选择最佳路径将数据包从源主机发送到目标主机。你可以使用 route 命令查看和配置路由表。 5. 套接字(Socket):套接字是 Linux TCP/IP 编程的关键概念。套接字是一种编程接口,用于在应用程序之间进行网络通信。Linux 提供了丰富的套接字 API,如 socket、bind、connect、listen、accept、send 和 recv。 6. TCPUDPTCP 是一种可靠的、面向连接的协议,提供数据可靠传输和流控制。UDP 是一种不可靠的、面向无连接的协议,提供简单的数据传输。Linux TCP/IP 协议栈支持 TCPUDP。 7. 网络包和数据包:在 Linux TCP/IP 中,数据通过网络网络包(packet)的形式传输。数据包是网络通信的基本单位,它包含了源和目标 IP 地址、端口号以及实际的数据。 以上是一些深入理解 Linux TCP/IP 的关键概念和组件。如果你对特定方面有更具体的问题,我可以为你提供更详细的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值