码迷,mamicode.com
首页 > 其他好文 > 详细

网络编程知识总结

时间:2016-06-17 01:01:24      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:网络编程

                网络基础

TCP/IP参考模型

技术分享

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


网络接口层

ARP:IP——>MAC地址

RAPR:MAC——>IP

数据链路层(驱动程序)封装了物理网络的电气细节

网际层选择中间节点

IP:

ICMP:检测网络连接  (它使用IP提供的服务)

技术分享


WAN(广域网)使用众多分级的路由器来连接分散的主机或LAN

网络层封装了网络连接的细节

传输层

TCP

UDP

SCTP(流控制传输协议)

传输层为应用程序提供了一条端到端的逻辑通信链路

应用层

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连接没有完全断开之前不允许重新监听的问题


                高级IO

pipe/socketpair

pipe用来创建管道,但是单个管道只能单向通信,一端用于读,而另一端用于写。如果要实

现进程双向通信,必须创建一对管道。而socketpair则可以用来创建双向通信的管道

dup/dup2

对输入文件描述符重定向,

select

poll

epoll




《完》

本文出自 “零蛋蛋” 博客,谢绝转载!

网络编程知识总结

标签:网络编程

原文地址:http://lingdandan.blog.51cto.com/10697032/1790043

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!