Linux 网络应用开发(一)之TCP/IP协议族
2013-06-19 17:03
197 查看
TCP/IP协议概述
从底层向上层开始介绍:一,网络接口层
它是数据包从一个设备的网络层传输到另外一个设备的网络层的方法。网络接口层在发送端将上层的IP数据报封装成帧后发送到网络上;数据帧通过网络到达接收端时,该结点的网络接口层对数据帧拆封,并检查帧中包含的MAC地址。如果该地址就是本机的MAC地址或者是广播地址,则上传到网络层,否则丢弃该帧。
二,网络层
负责将数据帧转换为IP数据报,并进行必要的路由选择。
三,传输层
负责端对端的通信会话的连接和建立传输协议根据传输数据的方式而定。
四,应用层
负责应用程序的网络访问,通过端口号识别不同的应用程序。
TCP/IP协议为一个协议族,其中各层又包含许多其他协议,现在介绍几个各层重要的协议:
网络接口层:
ARP:地址解析协议,将IP地址转换为MAC地址。网络接口层封装上层的IP数据报为以太网包,将用IP地址标记的目的机B转换为用MAC地址标记的目的机B。在A不知道B的MAC地址的情况下,A就广播一个ARP请求包,请求包中填有B的IP(192.168.1.2),以太网中的所有计算机都会接收这个请求,而正常的情况下只有B会给出ARP应答包,包中就填充上了B的MAC地址,并回复给A。A得到ARP应答后,将B的MAC地址放入本机缓存,便于下次使用。
RARP:与ARP功能相反。
网络层:
IPv4,IPv6,ICMP,IGMP不详细介绍啦!
传输层:
TCP:应用程序通过编程调用TCP并使用TCP服务,提供要发送的数据,用来区分接受目的地的目的地址与端口号。
三次握手协议:和指定服务器端口建立连接。第一次握请求端发送同步序列号SYN置1,初始序列号为x的TCP数据包,表明是请求建立连接报文;第二次握手接受端发送SYN,ACK位全部置1,确认号为x+1,序号为y的TCP报文,SYN及ACK为置1表明这是请求应答报文;第三次握手请求端发送确认号为y+1,序号为z的报文。注意TCP协议具有超时重传的特点。
FIN用于释放链接。
UDP:无连接不可靠,比较简单,不做介绍,其主要用于实时性问题的解决如网络视频会议。
应用层:
telnet,ftp。dns等等较简单就不介绍啦!
相关文章推荐
- Oracle应用Linux开发C_网络服务器
- Manual | BSD手册| Linux手册 | 数据库手册 | 编程开发手册 | WEB开发手册 | 软件应用手册 | 网络技术手册 | GNU手册
- Linux 网络应用开发(二)之socket编程
- Oracle应用Linux开发C_网络服务器
- Vs2013在Linux开发中的应用(20): 断点设置
- 移动网络应用开发中,使用 HTTP 协议比起使用 socket 实现基于 TCP 的自定义协议有哪些优势?
- 嵌入式应用/驱动开发网络环境设置-使用NFS网络文件系统挂载根文件系统
- 嵌入式linux应用开发之:初识Qt - farsight嵌入式学习专栏 - CSDNBlog
- Linux 网络的 IPv6 应用
- Unix/Linux C++应用开发-C++标准模板库
- Vs2013在Linux开发中的应用(29):寄存器信息
- Linux网络编程:基于TCP的程序开发(1)
- Unix/Linux下的Curse库开发指南——第六章 菜单开发及应用(1)
- Linux系统内核中网络参数的意义及其应用
- Windows程序员如何转向Linux开发应用?
- Linux程序应用开发环境和工具经验谈
- Linux网络操作系统及应用教程(项目式)项目四
- 运维之系统服务篇------2.linux扩展应用 、 vim编辑技巧 、 发布网络YUM源 、 源码编译安装
- Linux系统内核网络参数的意义及应用
- Linux 网络协议栈开发基础篇(二)—— TCP协议浅析