Linux网络编程学习(一)

1、协议

典型协议:TCP UDP IP HTTP FTP IP ICMP IGMP ARP 

2、网络应用程序设计模式

C/S模式:客户端和服务器模式:优点:1、协议选用灵活 2、数据可以提前缓存

缺点:1、对用户安全造成威胁 2、客户端、服务端程序开发调试麻烦

B/S模式:浏览器模式和服务器模式 优点:1、安全性比较高 2、开发服务器端就行 3、跨平台

缺点:1、协议选择HTTP(完整支持) 2、不能进行数据缓存

使用场景。

3、OSI七层模型 TCP/IP四层模型

物数网传会表应

4、路由器寻路

5、以太网帧格式

ARP请求包:获取下一个经由路由器的MAC地址:ARP协议:目的端IP是下一跳IP:根据网络层中的IP目的地址通过路由表寻路,获取下一跳的路由器即ARP的下一跳IP

下一跳,一跳

TTL:最长生命周期:以跳为单位,每经过一个路由器--,为0丢弃

5.IP

6、TCP\UDP

7、NAT映射:NAT映射表:将局域网IP映射成公网IP(虽然公网IP只有一个,但是改变端口号可以下发许多私有IP)

NAT打洞:打通两端、服务器来做

8、Socket:套接字:伪文件:一个文件描述符两个缓冲区:双向全双工

IP+PORT:在网络环境中唯一标识一个进程

Socket成对出现

网络字节序:网络数据流应采用大端字节序,即低地址高字节

#include<arpa/inet.h>
uint32_t htonl(uint32_t hostlong);//IP转换
uint16_t htons(uint16_t hostshort);//Port转换
uint32_t ntohl(uint32_t netlong);
uint16_t ntons(uint16_t netshort);

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);

sockaddr 数据结构(废弃了,但是某些函数例如bind,accept,connect只能指定这种类型的指针传)

struct sockaddr_in(新的结构更细分了)传参时强行转换

man 7 ip 查看

9、常用函数

socket函数

bind函数

listen函数:指定同时允许多少链接建立

!!!accept函数:服务器调用,阻塞直到用户发起链接 调用成功:返回新的接受链接的套接字描述符

connect函数:客户端调用

TCP三次握手、四次挥手

滑动窗口

mss 和MTU

多进程并发服务器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值