欢迎来到天天文库
浏览记录
ID:11448303
大小:142.00 KB
页数:11页
时间:2018-07-12
《oewfti计算机网路课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、生命是永恒不断的创造,因为在它内部蕴含着过剩的精力,它不断流溢,越出时间和空间的界限,它不停地追求,以形形色色的自我表现的形式表现出来。--泰戈尔中南林业科技大学计算机与信息工程学院计算机网络课程设计报告局域网聊天班级:08通信2班姓名:李仕贤学号:20082226一.设计的目的和意义1.在学习理论的同时,加强动手能力2.学习并掌握网络编程3.实际应用计算机网络知识意义:对以后的毕业设计打下基础,锻炼个人的学习和查阅资料的能力以及对课外相关本专业知识的了解。二.设计的理论基础a.TCP/IP协议概述TCP/IP实际上一个一起工作的通
2、信家族,为网际数据通信提供通路。为讨论方便可将TCP/IP协议组大体上分为三部分:1.Internet协议(IP)2.传输控制协议(TCP)和用户数据报文协议(UDP)3.处于TCP和UDP之上的一组协议专门开发的应用程序。它们包括:TELNET,文件传送协议(FTP),域名服务(DNS)和简单的邮件传送程序(SMTP)等许多协议。IP功能:IP的主要目的是为数据输入/输出网络提供基本算法,为高层协议提供无连接的传送服务。这意味着在IP将数据递交给接收站点以前不在传输站点和接收站点之间建立对话(虚拟链路)。它只是封装和传递数据,但不
3、向发送者或接收者报告包的状态,不处理所遇到的故障。TCP:TCP(传输控制协议TransmissionControlProtocol)是重要的传输层协议,传输层软件TCP的目的是允许数据同网络上的另外站点进行可靠的交换。它能提供端口编号的译码,以识别主机的应用程序,而且完成数据的可靠传输。TCP协议具有严格的内装差错检验算法确保数据的完整性。TCP是面向字节的顺序协议,这意味着包内的每个字节被分配一个顺序编号,并分配给每包一个顺序编号。用户数据报文协议:UDP(用户数据报协议UserDatagramProtocol)也是TCP/IP
4、的传输层协议,它是无连接的,不可靠的传输服务。当接收数据时它不向发送方提供确认信息,它不提供输入包的顺序,如果出现丢失包或重份包的情况,也不会向发送方发出差错报文。UDP的主要作用是分配和管理端口编号,以正确无误的识别运行在网络站点上的个别应用程序。由于它执行功能时具有较低的开销,因而执行速度比TCP快。它多半用于不需要可靠传输的应用程序,例如网络视频点播和视频会议等。b.网络编程基础socket概述:linux中的网络编程通过socket接口实现。Socket既是一种特殊的IO,它也是一种文件描述符。一个完整的Socket都有一个
5、相关描述{协议,本地地址,本地端口,远程地址,远程端口};每一个Socket有一个本地的唯一Socket号,由操作系统分配。套接字有三种类型:流式套接字(SOCK_STREAM):流式的套接字可以提供可靠的、面向连接的通讯流。它使用了TCP协议。TCP保证了数据传输的正确性和顺序性。数据报套接字(SOCK_DGRAM):数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠,无差错。使用数据报协议UDP协议。原始套接字:原始套接字允许对低层协议如IP或ICMP直接访问,主要用于新的网络协议实现的
6、测试等。structsockaddr{unsignedshortsa_family;/*address族,AF_xxx*/charsa_data[14];/*14bytes的协议地址*/};sa_family一般来说,IPV4使用“AF_INET”。sa_data包含了一些远程电脑的地址、端口和套接字的数目,它里面的数据是杂溶在一起的。structsockaddr_in{shortintsin_family;/*Internet地址族*/unsignedshortintsin_port;/*端口号*/structin_addrsin
7、_addr;/*Internet地址*/unsignedcharsin_zero[8];/*添0(和structsockaddr一样大小)*/};这两个数据类型是等效的,可以相互转换,通常使用sockaddr_in更为方便地址字节序列转化:因为每一个机器内部对变量的字节存储顺序不同(有的系统是高位在前,底位在后,而有的系统是底位在前,高位在后),而网络传输的数据大家是一定要统一顺序的。所以对与内部字节表示顺序和网络字节顺序不同的机器,就一定要对数据进行转换。下面给出套接字字节转换程序的列表:htons()——“HosttoNetwo
8、rkShort”主机字节顺序转换为网络字节顺序(对无符号短型进行操作2bytes)htonl()——“HosttoNetworkLong” 主机字节顺序转换为网络字节顺序(对无符号长型进行操作4bytes)ntohs()——“Netw
此文档下载收益归作者所有