1 / 32
文档名称:

Linux网络编程.doc

格式:doc   大小:504KB   页数:32页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Linux网络编程.doc

上传人:xgs758698 2017/11/13 文件大小:504 KB

下载得到文件列表

Linux网络编程.doc

文档介绍

文档介绍:1. LINUX网络编程基础知识 1
. TCP/IP协议概述 1
. OSI参考模型及TCP/IP参考模型 1
. TCP协议 3
. UDP协议 5
. 协议的选择 6
2. 网络相关概念 6
. socket概念 7
. socket类型 8
. socket信息数据结构 8
. 数据存储优先顺序的转换 8
. 地址格式转化 9
. 名字地址转化 10
3. socket编程 13
. 使用TCP协议的流程图 13
. 使用UDP协议的流程图 24
. 设置套接口的选项setsockopt的用法 31
. 单播、广播、组播(多播) 32
LINUX网络编程基础知识
TCP/IP协议概述
协议protocol:通信双方必须遵循的规矩由iso规定 rpc文档
osi参考模型:(应-表-会-传-网-数-物)
è 应用层表示层会话层传输层网络层数据链路层物理层
tcp/ip模型4层:
应用层{http超文本传输协议 ftp文件传输协议远程登录 ssh安全外壳协议 stmp简单邮件发送 pop3收邮件}
传输层{tcp传输控制协议,udp用户数据包协议}
网络层{ip网际互联协议 icmp网络控制消息协议 igmp网络组管理协议}
网络接口层{arp地址转换协议,rarp反向地址转换协议,mpls多协议标签交换}
TCP协议:传输控制协议面向连接的协议能保证传输安全可靠速度慢(有3次握手)
UDP协议:用户数据包协议非面向连接速度快不可靠
通常是ip地址后面跟上端口号:ip用来定位主机 port区别应用(进程)
http的端口号80 ssh-->22 -->23 ftp-->21 用户自己定义的通常要大于1024
OSI参考模型及TCP/IP参考模型
TCP/IP协议族的每一层的作用:
·网络接口层:负责将二进制流转换为数据帧,并进行数据帧的发送和接收。要注意的是数据帧是独立的网络信息传输单元。
·网络层:负责将数据帧封装成IP数据报,并运行必要的路由算法。
·传输层:负责端对端之间的通信会话连接和建立。传输协议的选择根据数据传输方式而定。
·应用层:负责应用程序的网络访问,这里通过端口号来识别各个不同的进程。
TCP/IP协议族的每一层协议的相关注解:
·ARP:(地址转换协议)用于获得同一物理网络中的硬件主机地址。
·MPLS:(多协议标签交换)很有发展前景的下一代网络协议。
·IP:(网际互联协议)负责在主机和网络之间寻址和路由数据包。
·ICMP:(网络控制消息协议)用于发送报告有关数据包的传送错误的协议。
·IGMP:(网络组管理协议)被IP主机用来向本地多路广播路由器报告主机组成员的协议。
·TCP:(传输控制协议)为应用程序提供可靠的通信连接。适合于一次传输大批数据的情况。并适用于要求得到相应的应用程序。
·UDP:(用户数据包协议)提供了无连接通信,且不对传送包进行可靠的保证。适合于一次传输少量数据。
TCP协议
概述
TCP是TCP/IP体系中面向连接的运输层协议,它提供全双工和可靠交付的服务。它采用许多机制来确保端到端结点之间的可靠数据传输,如采用序列号、确认重传、滑动窗口等。
首先,TCP要为所发送的每一个报文段加上序列号,保证每一个报文段能被接收方接收,并只被正确的接收一次。
其次,TCP采用具有重传功能的积极确认技术作为可靠数据流传输服务的基础。这里“确认”是指接收端在正确收到报文段之后向发送端回送一个确认(ACK)信息。发送方将每个已发送的报文段备份在自己的缓冲区里,而且在收到相应的确认之前是不会丢弃所保存的报文段的。“积极”是指发送发在每一个报文段发送完毕的同时启动一个定时器,加入定时器的定时期满而关于报文段的确认信息还没有达到,则发送发认为该报文段已经丢失并主动重发。为了避免由于网络延时引起迟到的确认和重复的确认,TCP规定在确认信息中捎带一个报文段的序号,使接收方能正确的将报文段与确认联系起来。
最后,采用可变长的滑动窗口协议进行流量控制,以防止由于发送端与接收端之间的不匹配而引起的数据丢失。这里所采用的滑动窗口协议与数据链路层的滑动窗口协议在工作原理上完全相同,唯一的区别在于滑动窗口协议用于传输层是为了在端对端节点之间实现流量控制,而用于数据链路层是为了在相邻节点之间实现流量控制。TCP采用可变长的滑动窗口,使得发送端与接收端可根据自己的CPU和数据缓存资源对数据发送和接收能力来进行动态调整,从而灵活性更强,也更合理。
三次握手协议
在利用TCP实现源主机和目的主机通信时,目的主机必须同