1、数据在 IP网络中的传输过程编制人:彭远大版本: v1.0有计划、有总结、有记录、有审核;Date 1专业化、规范化、标准化、电子化课程定位与目标 讲义适用于测试储干 学习后,掌握互联网络的基础知识,数据包在经过各种网络设备时的处理方式和过程,快速定位问题 自学建议: tcp/ip协议详解 卷 1Date 2专业化、规范化、标准化、电子化5 4 3 2 1目录TCP四层模型互联网服务数据包的生成数据包的传输数据包的接收6 接收后数据包的处理Date 3专业化、规范化、标准化、电子化一 TCP/IP四层模型TCP/IP协议被组织成四个概念层,其中有三层对应于 ISO参考模型中的相应层。 ICP/
2、IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作。TCP/IP分层模型的四个协议层分别完成以下的功能:第一层 :网络接口层包括用于协作 IP数据在已有网络介质上传输的协议。实际上 TCP/IP标准并不定义与 ISO数据链路层和物理层相对应的功能。相反,它定义像地址解析协议 (Address Resolution Protocol,ARP)这样的协议,提供 TCP/IP协议的数据结构和实际物理硬件之间的接口。第二层 :网间层对应于 OSI七层参考模型的网络层。本层包含 IP协议、 RIP协议(Routing Information P
3、rotocol,路由信息协议 ),负责数据的包装、寻址和路由。同时还包含网间控制报文协议 (Internet Control Message Protocol,ICMP)用来提供网络诊断信息。第三层 :传输层对应于 OSI七层参考模型的传输层,它提供两种端到端的通信服务。其中 TCP协议 (Transmission Control Protocol)提供可靠的数据流运输服务,UDP协议 (Use Datagram Protocol)提供不可靠的用户数据报服务。第四层 :应用层对应于 OSI七层参考模型的应用层和表达层。因特网的应用层协议包括Finger、 Whois、 FTP(文件传输协议 )
4、、 Gopher、 HTTP(超文本传输协议 )、Telent(远程终端协议 )、 SMTP(简单邮件传送协议 )、 IRC(因特网中继会话 )、 NNTP(网络新闻传输协议)等Date 4专业化、规范化、标准化、电子化PC1 PC2 PC3 PC4电信 DNS Server网通 DNS Server根 DNS Server根 DNS Server中国网通国际互联网中国电信PC163 proxy服务器163 proxy服务器 ADSL modemADSL modemR8G3124FF1008F1008G1024 163 proxy服务器一 互联网服务简示图Date 5专业化、规范化、标准化、电
5、子化IP包的生成 一个数据包的生成到接收大致会经过以下几个过程 发送端: 应用程序 - 操作系统( TCP/IP协议践) - 网卡驱动程序处理 - 网卡发送 到达目的地后各以相反的次序处理 接收端: 网卡接收 - 网卡驱动程序处理 - 操作系统( TCP/IP协议践) - 应用程序 IP包的生成由应用层 传输层 网络层完成Date 6专业化、规范化、标准化、电子化IP包的生成 IP首部报文格式Date 7专业化、规范化、标准化、电子化IP包的生成 IP首部Date 8专业化、规范化、标准化、电子化IP包的生成 一个简单的应用程序 sockt调用发送一个 IP数据包过程 #include #in
6、clude #include #include #include #include #include #include #include #define MAXBUF 1024Date 9专业化、规范化、标准化、电子化IP包的生成 int main(int argc, char *argv) int sockfd; struct sockaddr_in dest; char buf14; if (sockfd = socket(AF_INET, SOCK_STREAM, 0) 0) perror(“Socket“); exit(errno); bzero( dest.sin_family = AF_INET; dest.sin_port = htons(atoi(argv2); if (inet_aton(argv1, (struct in_addr *) exit(errno); if (connect(sockfd, (struct sockaddr *) exit(errno); /* 发送数据 */ strcpy(buf,“hello worldn“); send(sockfd, buf, sizeof(buffer), 0); /* 发送数据 */ close(sockfd); return 0; Date 10专业化、规范化、标准化、电子化