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
多进程并发服务器