您的位置:首页 > 理论基础 > 计算机网络

网络编程知识总结

2016-06-16 20:01 267 查看
网络基础
TCP/IP参考模型



TCP/IP协议簇:分层的多协议的通信体系,是一个四层协议系统

网络接口层
ARP:IP——>MAC地址
RAPR:MAC——>IP
数据链路层(驱动程序)封装了物理网络的电气细节
网际层选择中间节点
IP:
ICMP:检测网络连接 (它使用IP提供的服务)




WAN(广域网)使用众多分级的路由器来连接分散的主机或LAN
网络层封装了网络连接的细节
传输层
TCPUDPSCTP(流控制传输协议)传输层为应用程序提供了一条端到端的逻辑通信链路应用层
Ping:是应用程序,不是协议,是调试网络环境的工具

telent:远程登陆协议,能使我们本地完成远程任务
OSPF:开放最短路径优先协议,是一种动态路由更新协议,用于路由器间的通信,已告知对方各自的路由信息
TCP

封装过程如下图:




IP、ARP、RARP:三种协议都使用帧传输数据(IP 0x800 ARP 0x806 RARP 0x835)
TCP、UDP、ICMP:都使用IP协议(IP的头部采用16位的协议字段来区分它们)
DNS、HTTP等应用层协议:通过TCP、UDP提供服务(TCP、IP头部中的16位端口号字段区分上层应用)
(DNS 53 HTTP 80)

ARP/RARP



ARP高速缓存:IP地址到MAC地址的映射
arp命令
$sudo arp -d IP地址 #删除IP对应的ARP缓存
$sudo arp -s IP地址 物理地址 #添加...
以太网帧



ARP请求和应答是从以太网驱动程序发出的,而并非从ARP模块直接发送到以太网上的
DNS查询和应答报文

套接字编程
字节序
PC大多数是用小端字节序,又称主机字节序

大端字节序,又称网络字节序
socket地址的数据类型
通用socket地址(之根本)

struct sockaddr{
};
专用socket地址(更细)
TCP IPV4
struct sockaddr_in{
};
unix udp
struct sockaddr_un{
};
所有专用socket地址类型de变量在实际使用都需要转化为通用socketaddr
因为所有的socket编程接口都是用的地址参数类型都是sockaddr

地址族与协议族有完全相同的值,因此二者通常混用



setsockopt函数
解决server的TCP连接没有完全断开之前不允许重新监听的问题
http://www.cnblogs.com/eeexu123/p/5275783.html

高级IO
pipe/socketpair
pipe用来创建管道,但是单个管道只能单向通信,一端用于读,而另一端用于写。如果要实
现进程双向通信,必须创建一对管道。而socketpair则可以用来创建双向通信的管道

dup/dup2
对输入文件描述符重定向,
select
poll
epoll

《完》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网络 编程