Linux整理!

来源:互联网 发布:淘宝网领券 编辑:程序博客网 时间:2024/05/16 08:13

1>网络编程基础

TCP/IP四层模型:应用层、传输层、网络层、网络接口层
网络层:确定IP地址
传输层:
UDP(发邮件)协议不能保证数据可靠传输
TCP(打电话)保证可靠通信

应用层协议需自定义

ip协议:解决了识别互联网中唯一主机
TTL(ip协议:生存时间)每次经过一个路由器,生存时间减1,减为0时,最后一个路由器丢弃此信号包

端口号最多为2的16次方=0-65535,65536个(1024以内的端口号一般开发不用,因为为公用端口号)。

互联网中唯一的进程:IP地址+端口号

DNS域名:把网址解析成IP

NAT映射:访问网络,本地IP地址绑定端口,NAT映射到路由器,路由器把收到的IP地址和端口伪装成自己的IP地址(公网IP)和端口,发送给互联网,互联网接收到后,在返回给路由器(伪装后的IP地址和端口号),路由器在去寻找真实本地IP地址和端口,NAT映射回本地。
解决了公网IP不够用的问题,子网络只用一个公网IP,其他子系统都 NAT映射到这一个路由器。

打洞机制:两台不同公网IP地址的计算机想要建立链接,要先访问服务器,服务器链接对方计算机,才能让两台电脑互联。路由器有保护机制,未识别的ip不可以访问内网ip,想要和其他地址的电脑建立链接的话,就需要先在路由器登记自己的IP和端口,俗称打洞。那下一次对方发送链接信息的时候,就不需要和服务器链接,在链接对方。而是直接和对方链接,加快访问速度(视频聊天)。

两个内网的主机,借助路由器的NAT映射和打洞,让两台主机建立连接。

socket预备知识
IP地址+端口号:识别网络中的唯一进程

小端存储:低地址存低字节
高地址存高字节
大端存储:低地址存高字节
高地址存低字节
(平时生活大部分都是小端序)
TCP/IP协议规定:网络数据流采用大端字节序,低地址,高字节
例:两台电脑发送数据包(包含IP地址和端口及内容),IP地址和端口号参与网络通讯,内容不参与,所以内容不需要转换成大端序。

网络序(大端序)和主机序转化

不能被信号打断的函数称为不可重入函数
能被信号打断的函数称为可重入函数

IP地址转换函数:

include <arpa/inet.h>int inet_pton(int af, const char *src, void *dst);const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);支持IPv4和IPv6可重入函数
0 0
原创粉丝点击