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

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情
  • 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;</

LinuxTCP/IP协议栈的简单脉络分析 最近在写网络编程面的一些东西,然后遇到了关于传输上的小问题。由于之前有简单的看过一些TCP/IP详解的一些东西,所以索性就找了本《追踪LinuxTCP/IP代码运行》的书看了一上午,结果发现初次接触这些内核面的东西,收获甚微。于是又在网上找相关类的大神博客,拿来拜读,虽然依然看的不是太明白,吸收的也不够好,但是我想以博客的形式把它记录下来,也希望能为我以后学这些东西开个好头吧1.linux的网络 阅读详情

相关推荐

LinuxTCP & UDP & IP报头信息

高性能服务器编程 1、I/O复用 – 服务器并发 I/O 的式,服务器程序将多个 I/O 统一管理,当其中某些 I/O 有事件(I/O 复用上注册的事件)发生时,则将发生事件的 I/O 及相应的事件通知服务器程序。 int select (int maxfd, fd_set*read) epoll int epoll_create(int size); // 创建一个内核事件表,保存用户...

wanghao_9625的博客 412

LinuxC下获取UDP包中的路由目的IP地址头标识目的地址

在接受到UDP包后,有时候我们需要根据所接收到得UDP包,获取它的路由目的IP地址头标识目的地址。 (一)主要的步骤: 在setsockopt中设置IP_PKTINFO,然后通过recvmsg来获取struct in_pktinfo(struct in_pktinfo是struct msghdr中msg_control的成员).in_pktinfo 结构体(如下所示),我们可以从in_pkt...

weixin_34268753的博客 440

tcp/udp获取发送ip

#include &lt;sys/socket.h&gt; #include &lt;netinet/in.h&gt; #include &lt;arpa/inet.h&gt; struct sockaddr_in raddr;//raddr为已经存储了ip的变量 printf("%s\n",inet_ntoa(raddr.sin_addr));//可将ip打印出来 ...

AKDMMQ的博客 2240

简单实现基于UDPTCP的回显服务器

详解基于TCPUDP的回显服务器

qq_71360748的博客 844

linux 网络编程

linux系统编程-网络编程

qq_39855356的博客 5539

Linux系统之网络编程

Linux系统之网络编程1 网络基础理论1.1 OSI模型与TCP/IP协议1.2 TCP/IP体系模型1.2 TCPUDP1.3 IP地址、端口、字节序1.4 socket相关函数1.4.1 socket()函数1.4.2 bind()函数1.4.3 listen()函数1.4.4 accept()函数1.4.5 connect()函数1.4.6 send()函数1.4.7 recv()函数1.4.8 sendto()函数1.4.9 recvfrom()函数1.5 TCP编程1.6 TCP粘包拆包1.

乐享的博客 1691

Linux网络编程(网络七层协议,TCP/IP,三次握手四次挥手,TCP/UDP的区别)

1.OSI 7层网络模型 1.网络七层协议 (1)OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型。 (2)各层功能定义 这里我们只对OSI各层进行功能上的大概阐述,不详细深究,因为每一层实际都是一个复杂的层。后面我也会根据个人向展开部分层的深入学习。这里我们就大概了解一下。我们从最顶层——应用层 开始介绍。整个过程以公司A公司B的一次商业报价单发送为例子进行讲解。 <1> 应用层 OSI参考模型中最靠近用

weixin_49303682的博客 568

Linux网络编程基础知识--协议

Linux网络编程基础知识--协议

qq_61585528的博客 1050

TCP IP网络编程

此结构体成员sa_data保存的地址信息中需包含IP地址端口号,剩余部分应填充0,这也是bind函数要求的。实际编程中若要调用inet_addr函数,需将转换后的IP地址信息代入sockaddr_in结构体中声明的in_addr结构体变量。每次创建服务器端套接字都要输入IP地址会有些繁琐,所以采用常数INADDR_ANY分配服务器端的IP地址,可自动获取运行服务器端的计算机IP地址,不必亲自输入。大端序,这就叫做网络字节序。特点:可靠的,按序传递的,基于字节的面向连接的数据传输式的套接字。

ccb1372098的博客 1821

嵌入式LINUX——————网络

1)应用层:用来表示用户发的数据内容格式2)表示层:数据加密,解密操作,压缩,解压缩3)会话层::建立数据传输通道4)传输层:传输的UDP TCP 端口号5)网络层:实现数据路由 路由器 ip6)数据链路层:封装成帧,点对点通信(局域网内通信),差错检测 交换机 ARP7)物理层:定义物理设备标准,网线、光纤等传输介质 比特流 bit 0 1。

wxy319的博客 1170

Linux网络编程概述

Linux网络编程是在Linux操作系统环境下进行的网络相关程序开发,主要用于实现不同计算机之间的数据通信资源共享。

XWXnb6的博客 713

Linux网络编程基础1(网络应用程序设计模式,分层模型,协议格式)

Linux网络编程基础(网络应用程序设计模式,socket编程,inet_pton,inet_ntop,服务端创建连接的过程,客户端创建连接的过程,socket函数封装)1. 网络应用程序设计模式2. 分层模型3. 协议3.1 协议的概念3.2 协议格式3.2.1 以太网帧格式 -- 借助mac地址完成数据报传递3.2.2 IP段格式3.2.3 UDP数据包格式3.2.4 TCP数据报格式4. 数据的发送接收5. TCP/UDP简要 1. 网络应用程序设计模式 1. C/S - client/server

kuanyew的博客 1307

Linux网络编程

Linux网络编程 TCP/IP与OSI 网络互联促成了TCP/IP协议的产生: TCP协议分成两个不同的协议: 用来检测网络传输差错的传输控制协议TCP 专门负责对不同网络进行互联的互联网协议IP 从此,TCP/IP协议产生。 网络体系结构: 网络采用分而治之的法设计,将网络的功能划分成不同的模块,以分层的形式有机组合在一起。 每层实现不同的功能,其内部实现法对外部其他层次来说都...

跑不了的你的博客 704

复习——网络编程基础

本文摘要:网络编程基础知识涵盖了OSI七层模型TCP/IP四层模型,重点介绍了IP地址分类、Socket编程基础以及TCP/UDP编程模型。详细讲解了TCP服务器端函数调用流程(socket-bind-listen-accept)UDP专用函数sendto/recvfrom,并列举了常见网络端口号。文章还比较了C/S、B/SP2P三种网络模式,最后强调了网络编程中的错误处理、资源管理并发控制等注意事项。内容系统全面,适合网络编程初学者快速掌握核心概念。

2301_78295956的博客 1403

嵌入式Linux网络编程,网络基础,OSI七层模型,TCP/IP四层模型,TCP/IP通信模型、协议结构、封包与拆包,TCP/UDP协议特点及适用情况

文章目录1,TCP协议分成了两个不同的协议-----&amp;gt;TCP/IP协议诞生2,网络的体系结构2.1,OSI开放系统互联模型2.2,TCP/IP协议族的体系结构3,TCP/IP协议通信模型3.1,TCP/IP结构3.2,TCP/IP协议通信模型3.3,数据的封装与传递过程(封包拆包)4,TCP协议特点5,UDP协议特点4,socket4.1,socket的类型 1,TCP协议分成了两个不同...

m0_37542524的博客 4551

Linux网络基础知识----网络编程

TCP向应用层提供可靠的面向连接的数据流传输服务,应用程序通过向TCP提交数据发送/接收端的地址端口号而实现应用层程序的数据通信。Linux命令sudo netstat -tpna | grep 端口号可查看连接的服务端客户端的地址、端口状态信息独立于具体协议的网络编程接口在OSI模型中,主要位于会话层传输层之间。在Linux 下,套接字是一种特殊的I/O接口,也是一种文件描述符。操作selectpollepoll初始化每次重建fd_set初始化pollfd数组通过epoll_ctl。

2502_90801893的博客 328

TCP/IP 网络编程》笔记

本文主要基于《TCP/IP 网络编程》这本书进行总结,主要针对 Linux 网络编程部分进行阐述,Windows 网络编程部分有需要建议阅读原书籍。

weixin_57209831的博客 501

Linux下的网络编程

应用层:HTTP超文本传输协议,HTTPS:多了一个加密算法,FTP文件传输协议,TFTP简单文件传输协议,MQTT消息队列遥测传输协议(物联网协议),DNS域名解析协议(TTL,所经路由器个数)B/S模型:browser/server 通用的客户端(浏览器)----专用服务器。桥接至—》PC正在上网的网卡-----》应用-----》确定。IP协议:IPV4(32)---->IPV6(128)虚拟机–》设置—》网络适配器----》桥接模式。表示层 :数据加密,解密操作,压缩,解压缩。

weixin_62171345的博客 508
上一篇: I2C-EEPROM应用
下一篇: Qt5编程设计应用----闹钟
娄晓旭Eloise
博客等级 码龄6年 0粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值