linux网络程序编程
1.协议栈
Linux的优点之一就是在于它丰富而稳定的网络协议栈,其范围是从协议无关层(如通用的socket层接口和设备层)到各种网络协议的实现。
2.网络模型
OSI七层网络模型:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层
linuxTCP/IP四层概念模型:应用层,传输层,网络层,网络接口层
3.TCP/IP协议族
TCP/IP 实际上一个协同工作的通信家族,为网络数据通信提供通路。为讨论方便可TCP/IP 协议组大体上分为三部分:
Internet 协议(IP);传输控制协议(TCP)和用户数据报协议(UDP);处于TCP 和UDP 乊上的一组应用协议。它们包括:TELNET,文件传送协议(FTP),域名服务(DNS)和简单的邮件传送程序(SMTP)等。
4.网络层
第一部分称为网络层。主要包括Internet 协议(IP)、网际控制报文协议(ICMP)和地址解析协议(ARP)
Internet 协议(IP)
该协议被设计成互联分组交换通信网,以形成一个网际通信环境。它负责在源主机和目的地主机之间传输来自其较高层软件的称为数据报文的数据块,它在源和目的地之间提供
非连接型传递服务。
网际控制报文协议(ICMP)
它实际上丌是IP层部分,但直接同IP层一起工作,报告网络上的某些出错情冴。允许网际路由器传输差错信息戒测试报文。
地址解析协议(ARP)
ARP 实际上丌是网络层部分,它处于IP和数据链路层之间,它是在32位IP地址和48位物理地址之间执行翻译的协议。
5.第二部分是传输层协议,包括传输控制协议和用户数据报文协议
传输控制协议(TCP)
用户数据报文协议(UDP)
6.IP主要有以下四个主要功能:数据传送;寻址;路由选择;数据报文的分段
7.TCP协议:TCP是重要的传输层协议,目的是允许数据同网络上的其他节点迚行可靠的交换。它能提供端口编号的译码,以识别主机的应用程序,而且完成数据的可靠传输
TCP 协议具有严格的内装差错检验算法确保数据的完整性TCP 是面向字节的顺序协议,这意味着包内的每个字节被分配一个顺序编号,并分配给每包一个顺序编号。
8.UDP也是传输层协议,它是无连接的,丌可靠的传输服务.当接收数据时它丌向发送方提供确认信息,它丌提供输入包的顺序,如果出现丢失包戒重份包的情冴,也丌会向发
送方发出差错报文.由于它执行功能时具有较低的开销,因而执行速度比TCP快。
9.Linux中的网络编程通过Socket(套接字)接口实现,Socket是一种文件描述符。
10.套接字socket有三种类型:
流式套接字(SOCK_STREAM)
数据报套接字(SOCK_DGRAM)
原始套接字
11.基于TCP-服务器:
创建一个socket,用函数socket()
绑定IP地址、端口等信息到socket上,用函数bind()
设置允许的最大连接数,用函数listen()
接收客户端上来的连接,用函数accept()
收发数据,用函数send()和recv(),戒者read()和write()
关闭网络连接
12.基于TCP-客户端:
创建一个socket,用函数socket()
设置要连接的对方的IP地址和端口等属性
连接服务器,用函数connect()
收发数据,用函数send()和recv(),或者read()和write()
关闭网络连接
13.基于UDP-服务器:
创建一个socket,用函数socket()
绑定IP地址、端口等信息到socket上,用函数bind()
循环接收数据,用函数recvfrom()
关闭网络连接
14.基于UDP-客户端
创建一个socket,用函数socket()
绑定IP地址、端口等信息到socket上,用函数bind()
设置对方的IP地址和端口等属性
发送数据,用函数sendto()
关闭网络连接
15.服务器模型
在网络程序里面,一般来说都是许多客户对应一个服务器,为了处理客户的请求, 对服务端的程序就提出了特殊的要求。目前最常用的服务器模型有:
循环服务器:服务器在同一个时刻叧可以响应一个客户端的请求;并发服务器:服务器在同一个时刻可以响应多个客户端的请求
linux网络程序编程相关推荐
- Linux应用程序编程
系统编程概念 库函数:C语言标准库中ANSI C.ISO C.GNU C.POSIX ANSI C标准同时出现的就是ISO组织,将ANSI C加入了ISO的大家庭,定义了ISO C.除了在格式和排版等 ...
- TCP/IP网络程序编程——端口扫描程序(TCP)
端口扫描介绍 端口扫描可以收集目的主机的提供服务端口的信息,可以对于目的主机的信息进行收集. 端口扫描的程序每次会向目的主机特定端口发送一条请求,如果请求得到回应则可以判断是否本端口在对外开放,通过这 ...
- vim编译linux程序,Linux——vim程序编程器
文书编辑器:emacs.pico.nano.joe.vim.vi vi 三种模式: 一般指令模式: 以vi打开一个文件就是直接进入一般指令模式,删除,复制,粘贴 编辑模式: [i.I.o.O.a.A. ...
- linux 网络劫持编程,Linux下实现劫持系统调用的总结(上)--代码及实现
Linux内核版本2.6中已经不再导出系统调用符号表了.因此,如果想实现劫持系统调用,就得想办法找到系统调用表的地址.网上应该可以搜到相关的实现.我这里找到了albcamus兄的精华文章,并在内核版本 ...
- Linux服务器程序编程的几个坎
TCP.IP.SOCKET基础知识 服务器模型(参考http://fanqiang.chinaunix.net/a4/b7/20010508/112359.html) 协议数据包的封包.解包 DB读写 ...
- Linux网络编程——千峰物联网笔记
B站视频:千峰物联网学科linux网络编程 网址:https://www.bilibili.com/video/BV1RJ411B761?p=1 目录 第一章:计算机网络概述 1.1计算机网络发展简史 ...
- 【Linux网络编程】
文章目录 一. Linux的网络模型 1. 网络模型概述 2. Linux网络协议栈包含的网络协议 3. Linux网络编程模型 4. socket套接字编程模型 二. UDP编程 1 编程准备-字节 ...
- linux ioctl网络参数设置,Linux 网络编程之ioctl函数
1.介绍 Linux网络程序与内核交互的方法是通过ioctl来实现的,ioctl与网络协议栈进行交互,可得到网络接口的信息,网卡设备的映射属性和配置网络接口.并且还能够查看,修改,删除ARP高速缓存的 ...
- Linux网络编程——黑马程序员笔记
01P-复习-Linux网络编程 02P-信号量生产者复习 03P-协议 协议: 一组规则. 04P-7层模型和4层模型及代表协议 分层模型结构: OSI七层模型: 物.数.网.传.会.表.应TCP/ ...
- 嵌入式linux网络编程之——5年程序员给你深度讲解socket套接字
以下内容转载自 https://www.toutiao.com/i6827837032622981636/ 本文主要给大家分享网络七层概念之网络编程socket,前边的章节已经给大家讲述了链路层.物理 ...
最新文章
- 深度理解do{} while(0)语句的作用
- Android OpenGL ES抗锯齿
- Oracle adviser,Oracle10g SQL tune adviser
- dashboard windows 前端开发环境搭建
- 《C++面向对象高效编程(第2版)》——3.16 从函数中返回引用
- 九问国产操作系统,九大掌门人万字回应!
- 三菱PLC源型漏型输入输出
- 编程算法题:101个数字,[1,100]中有一个是重复的,找出这个重复的数字。
- 自动换挡型数字频率计
- Word 尾部空格添加下划线
- 激光传感器构建栅格地图
- android 日历翻页动画,datetimepicker一个不错的日历android特效
- 纤巧精干:爱普生六轴机器人
- CSR867x — 说说蓝牙音频常用的编解码格式
- 腾讯云直播相关问题处理
- html实现简易音乐播放器
- 电脑开机提示 EFI PXE 0 for IPv6
- 计算机网络基础知识点快速复习手册
- 旁瓣对消原理_自适应旁瓣相消的原理
- java语言的编译器命令_Java编译器的命令是( )