首页 > 系统相关 >Linux系统编程 第13章学习笔记

Linux系统编程 第13章学习笔记

时间:2022-10-19 11:03:37浏览次数:55  
标签:13 Linux IP 编程 TCP 主机 IP地址 接字 端口号

TCP/IP和网络编程

 

TCP/IP协议

TCP/IP (Comer 1988, 2001; RFC1180 1991 )是互联网的基础。TCP代表传输控制协议。 IP代表互联网协议。

 

 

 

IP主机和IP地址

主机是支持TCP/IP协议的计算机或设备。每个主机由一个32位的IP地址来标识。为了方便起见,32位的IP地址号通常用点记法表示

IP地址分为两部分,即NetworkID字段和HostID字段。根据划分,IP地址分为A~E 类。

 

IP协议

Ip协议用于在Ip主机之间发送/接收数据包。

 

IP数据包格式

 

 

 

 

路由器

接受和转发数据包

 

 

UDP

UDP (用户数据报协议)在IP上运行,用于发送/接收数据报。

不能保证可靠性,但是快速高效

 

TCP

TCP (传输控制协议)是一种面向连接的协议,用于发送/接收数据流。

稳定传输

 

端口编号

应用程序=(主机IP,协议,端口号)

其中,协议是TCP或UDP,端口号是分配给应用程序的唯一无符号短整数。要想使用 UDP或TCP,应用程序(进程)必须先选择或获取一个端口号。前1024个端口号已被预留。其他端口号可供一般使用。

 

 

 

 

网络和主机字节序

计算机可以使用大端字节序,也可以使用小端字节序。在互联网上,数据始终按网络序排列,这是大端。

 

TCP/IP网络中的数据流

 

 

 

 

网络编程

网络编程平台

·服务器上的用户账户

·单独PC或笔记本电脑

服务器——客户机计算模型

 

套接字编程

套接字地址

·TCP/IP 网络的 sin_family 始终设置为 AF_INET。

·sm_port包含按网络字节顺序排列的端口号。

·sin_addr是按网络字节顺序排列的主机IP地址。

套接字API

·socket()系统调用

创建一个套接字并返回一个文件描述符

·sendto()/recvfrom()

发送/接收数据报

·listen()

将引用的套接字标记为将用于接收连入连接的套接字

·accept()

与基于连接的套接字一起使用

·connect()

建立连接

·send()/read()、recv()/write()

完成数据的收发

主机名和IP地址

gethostname()

gethostbyname()

 

标签:13,Linux,IP,编程,TCP,主机,IP地址,接字,端口号
From: https://www.cnblogs.com/s-j-y/p/16805465.html

相关文章

  • linux下驱动开发_红外线解码驱动
    一、前言现在很多手机都支持红外线发送了,支持家电控制。红外线协议有很多,当前介绍的是NEC协议(红外线传输协议中的一种),也是常说的万能遥控器的协议。对于接收端而言,NEC协议最......
  • Linux系统编程 第14章学习笔记
    MySQL数据库系统 MySQL简介MySQL(MySQL2018)是一个关系数据库系统 MySQL安装sudoapt-getinstallmysql-server  MySQL使用安装、显示、新建、删除、选择......
  • Linux下进程下文件描述
    进程中管理文件列表结构structtast_struct是内核中用来表示进程的一个数据结构,它包含了进程的所有信息。本小节我们只列出和文件管理相关的属性。其中进程......
  • Linux系统编程 第11章学习笔记
    EXT2文件系统磁盘是用来储文件的,但是必须先把磁盘格式化为某种格式的文件系统,才能存储文件。文件系统的目的就是组织和管理磁盘中的文件。在Linux系统中,最长见的是ext2......
  • Windows使用Docker出现exit 139错误
    使用DockerDesktop启动一个镜像以后,发现直接EXITED(139)这时候用dockerlogcontainerId也获取不到任何日志问题缘由找了比较多的资料哈,Centos6下对Docker支持确实......
  • Linux系统编程 第12章学习笔记
    块设备I/O和缓冲区管理 块设备I/O缓冲区I/O缓冲区作为块设备的缓存内存存在I/O缓冲的基本原理非常简单。文件系统使用一系列I/O缓冲区作为块设备的缓存内存。当进程......
  • 提高编程效率的5大VS Code插件
    前言作为一名开发人员,大家会一直寻找可以帮助改进日常工作流程的解决方案,VSCode市场中就有很多优秀的扩展插件程序。正文​​一、GitLive​​GitLive是一个出色的扩展程......
  • Linux系统编程 第3章学习笔记
    Unix/Linux进程管理多任务处理:在单处理器(单CPU)系统中.一次只能执行一个任务-多任务处理是通过在不同任务之间多路复用CPU的执行时间来实现的,即将CPU执行操作从一个任务......
  • Linux系统编程 第4章学习笔记
    并发编程并行计算导论顺序算法与并行算法:   并行性与并发性:通常,并行算法只识别可并行执行的任务,但是它没有规定如何将任务映射到处理组件。在理想情况下,并行算......
  • Linux系统编程 第5章学习笔记
    定时器及时钟服务硬件定时器定时器是由时钟源和可编程计数器组成的硬件设备。 个人计算机定时器基于Intelx86的个人计算机有数个定时器(Bovet和Cesati2005)。实时......