当前位置:文档之家› 计算机网络一TCPIP协议与Socket编程认识实验

计算机网络一TCPIP协议与Socket编程认识实验

东南大学自动化学院

实验报告

课程名称:计算机网络实验

第 1 次实验

实验名称:TCP/IP协议与Socket编程认识实验

院(系):自动化专业:自动化

姓名:学号:

实验室:实验组别:

同组人员:实验时间:2012年5月9日评定成绩:审阅教师:

一、实验目的和要求:

1. 熟悉TCP/IP协议的功能和网络操作;

2. 了解MS-DOS环境下基于SOCKET的编程原理;

3. 编写一个小型的Socket实用程序,初步了解Windows环境下使用Socket的编程。

二、实验原理:

1.Windows Sockets规范:

Windows Sockets规范以U.C. Berkeley大学BSD UNIX中流行的Socket接口为范例定义了一套Micosoft Windows下网络编程接口。它不仅包含了人们所熟悉的Berkeley Socket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。

Windows Sockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。此外,在一个特定版本Windows的基础上,Windows Sockets也定义了一个二进制接口(ABI),以此来保证应用Windows Sockets API的应用程序能够在任何网络软件供应商的符合Windows Sockets协议的实现上工作。因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。

遵守这套Windows Sockets规范的网络软件,我们称之为Windows Sockets兼容的,而Windows Sockets 兼容实现的提供者,我们称之为Windows Sockets提供者。一个网络软件供应商必须百分之百地实现Windows Sockets规范才能做到现Windows Sockets兼容。

任何能够与Windows Sockets兼容实现协同工作的应用程序就被认为是具有Windows Sockets接口。我们称这种应用程序为Windows Sockets应用程序。

Windows Sockets规范定义并记录了如何使用API与Internet协议族(IPS,通常我们指的是TCP/IP)连接,尤其要指出的是所有的Windows Sockets实现都支持流套接口和数据报套接口.

应用程序调用Windows Sockets的API实现相互之间的通讯。Windows Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。它们之间的关系如图1-1。

虽然我们并不反对使用这一套API来实现另一通讯协议栈(而且我们期望在将来规范的修改中能够讨论这个问题),但这种用法已经超出了我们这一份规范所规定的范围,我们在此将不作讨论。

2.Bekeley套接口:

Windows Sockets规范是建立在Bekeley套接口模型上的。这个模型现在已是TCP/IP网络的标准。它提供了习惯于UNIX套接口编程的程序员极为熟悉的环境,并且简化了移植现有的基于套接口的应用程序源代码的工作。Windows Sockets API也是和4.3BSD的要求一致的。

3.Microsoft Windows和针对Windows的扩展

这一套Windows Sockets API能够在所有3.0以上版本的Windows和所有Windows Scokets实现上使用,所以它不仅为Windwos Sockets实现和Windows Sockets应用程序提供了16位操作环境,而且也提供了32位操作环境。

Windows Sockets也支持多线程的Windows进程。一个进程包含了一个或多个同时执行的线程。在Windows 3.1非多线程版本中,一个任务对应了一个仅具有单个线程的进程。而我们在本书中所提到的线程均是指在多线程Windows环境中的真正意义的线程。在非多线程环境中(例如Windows 3.0)这个术语是指Windows Sockets进程.

Windows Sockets规范中的针对Windows的扩展部分为应用程序开发者提供了开发具有Windows应用软件的功能。它有利于使程序员写出更加稳定并且更加高效的程序,也有助于在非占先Windows版本中使多个应用程序在多任务情况下更好地运作。除了WSAStartup()和WSACleanup()两个函数除外,其他的Windows扩展函数的使用不是强制性的。

4. Winsock编程模型

⑴建立socket。程序使用socket进行网络时,必须先建立一个socket。为了建立一个socket,成需要调用socket函数。下面程序与举显示了一个socket函数调用的例子:socket_handle=socket(protocol_family,_socket_type,protocol);

⑵配置一个socket。为了配置一个,程序可使用Winsock API中不同的函数。一般来讲,每个socket 需要五种信息:本地和远地机的IP地址,本地和远地进程的协议端口,联接上使用的协议。

⑶连接一个socket。面向连接客户程序必须提供给Socket的唯一地址信息是远地主机信息—IP地址和协议端口。

⑷使用一个Socket,程序能够使用Winsock API在一个配置好的Socket上传送和接收数据。I/O函数如下:Send,通过连接的Socket传送数据,使用特殊的标志控制Socket的行为。Sendto,将数据传送给Socket地址结构指定的主机,传送时使用一个简单的报文缓冲区。Recvfrom,从Socket接收数据,选择发送主机的网络地址,传送时使用一个简单的报文缓冲区。

⑸使用一个连接的Socket。由于Send函数不能指定目的地址,因此,程序只能在连接的Socket上使用它。也就是说,在程序使用Send函数之前,必须建立一个Socket。

⑹使用一个无连接的Socket。当没有建立Socket连接时,上述的Send函数便不能使用,这是需要用Sendto函数

5. 根据上述WINSOCK API 包括包括对应函数如下:

1、WSAStartup():连结应用程序与Windows Sockets DLL 的第一个函数。说明:此函数是应用程序调用Windows Sockets DLL函数中的第一个,也唯有此函数呼叫成功后,才可以再调用其他Windows Sockets DLL 的函数。

2、WSACleanup():结束Windows Sockets DLL 的使用。说明:当应用程序不再需要使用Windows Sockets DLL时,须调用此函数来注销使用,以便释放其占用的资源。

3、socket():建立Socket。说明:此函数用来建立一个Socket 描述字,并为此Socket 建立其所使用的资源。

4、closesocket():关闭某一Socket。说明:此一函数是用来关闭某一Socket。

5、bind():将一本地地址与一个SOCKET描述字连接在一起。说明:此函数在服务程序上使用,是调用监听函数listen()必须要调用的函数。

6、listen():设定Socket 为监听状态,准备被连接。说明:此函数在服务程序上使用,来设定Socket 进入监听状态,并设定最多可有多少个在未真正完成连接前的客户端的连接要求。(目前最大值限制为5, 最小值为1)

7、accept():接受某一Socket的连接要求,以完成面向连接的客户端Socket 的连接请求。说明:服务端应用程序调用此函数来接受客户端Socket 连接请求,accept() 函数的返回值为一新的Socket,新Socket 就可用来在服务端和客户端之间的信息传递接收,而原来Socket 仍然可以接收其他客户端的连接要求。

8、connect():要求连接某一Socket到指定的网络上服务端。说明:此函数用在客户端,用来向服务端要求建立连接。当连接建立完成後,客户端即可利用此Socket 来与服务端进行信息传递。

9、recv():从面向连接的Socket 接收信息。说明:此函数用来从面向连接的Socket 接收信息。

10、send():使用面向连接的Socket 发送信息。说明:此函数用来从面向连接的Socket 发送信息。

11、WSAAsyncSelect():要求某一Socket 有事件(event) 发生时通知使用者。

说明:此函数用来请求Windows Sockets DLL 为窗口句柄发一条消息-无论它何时检测到由lEvent 参数指明的网络事件。要发送的消息由wMsg参数标明.被通知的套接口由s标识。本函数自动将套接口设置为非阻塞模式。lEvent参数由下表中列出的值组成。

这个函数可以认为是WINSOCK API 中最为重要的一个函数。要想使用好这个函数,你必须对WINDOWS 编程的事件驱动和消息传递有很清楚的了解。具体的函数参见《微机硬件应用实践—系统与综合》第148页。

三、实验方案与实验步骤:

实验内容:

根据以上内容,编写一个查询主机地址的程序,比如说,输入域名则可以查询IP地址或者相反。同时,再编写一个实现与 HTTP 服务器通话的应用程序。

主要步骤:

(1)网络程序初始化,服务器和客户端WinSock API均要求在调用其他WinSock函数以前先调用WSAStartUp函数初始化。

(2)创建套接字Socket()。

(3)配置并启动套接字。

(4)通过Socket发送和接收数据。

(5)程序结束时必须关闭Socket,使用与WSAStartUp()相对应的函数WSACleanUp(),释放所分配的内部缓冲区和其他资源。

四、实验设备与器材配置:

1.实验室具有基于TCP/IP协议的Windows网络硬软件环境;2.微机 1台。

五、实验记录:

1. 编译运行程序,输入一个域名(URL):

再采用Windows命令行,输入ping https://www.doczj.com/doc/6315385210.html,

结果:发现程序与cmd ping命令运行结果一致

2.输入一个IP地址:

上图输入的IP地址为0.0.0.0,输出的URL为Speed(计算机名),即本网络上的本主机。

假如连不上此IP地址,程序会产生这样一个对话框:

六、实验总结:

此次实验,主要让我熟悉了TCP/IP协议的功能和网络操作,MS-DOS环境下基于SOCKET的编程原理,Windows环境下使用Socket的编程。帮助我学习计算机网络这门课程。

2017福师TCP-IP协议原理与编程在线作业(含答案)

201710TCPIP协议原理与编程作业 1.( 2.0分)下列说法正确的是 A、TCP伪头部和长度补足部分要进行传输 B、RARP是传输层的协议 C、TCP连接的三次握手目的是为了同步连接双方发送数据的初始序列号 D、IP协议提供可靠的数据传输服务 我的答案:C 2.(2.0分)IP头部中,“头部长”字段的度量单位是 A、8位 B、16位 C、32位 D、64位 我的答案:C 3.(2.0分)关于ARP的说法错误的是 A、ARP使用询问/回答机制 B、ARP缓存用于减少地址解析需要的通信 C、ARP实现从物理地址到IP地址的映射 D、ARP只能在同一个物理网络中使用 我的答案:C 4.(2.0分)下列说法错误的是 A、OSI的发展比TCP/IP早10年左右 B、OSI具有完整的七层结构 C、OSI架构很少有实际运行的系统 D、TCP/IP现已成为Internet的主流协议

我的答案:A 5.(2.0分)RIP路由算法所支持的最大Hop数为 A、10 B、15 C、16 D、32 我的答案:B 6.(2.0分)以下哪个IP地址可以在Internet上使用 A、/ B、/ C、/ D、/ 我的答案:A 7.(2.0分)滑动窗口协议是一种 A、超时判断机制 B、差错纠正机制 C、差错检测机制 D、确认重发机制 我的答案:D 8.(2.0分)OSPF采用( )方式进行路由通告 A、单播 B、组播 C、广播 D、以上皆是 我的答案:B 9.(2.0分)以下不属于网络层协议的是

A、ARP B、IGMP C、ICMP D、FTP 我的答案:D 10.(2.0分)负责电子邮件传输的应用层协议是 A、SMTP B、PPP C、IP D、FTP 我的答案:A 11.(2.0分)对已经是分片的IP数据包再进行分片后得到的每个分片中的标志位是 A、一定是1 B、一定是0 C、可能是0 D、以上皆错 我的答案:A 12.(2.0分)TCP协议利用()来提供可靠服务 A、三次握手协议 B、建立连接 C、流量控制 D、超时重发机制 我的答案:A 13.(2.0分)ICMP的类型字段中,字段值为0表示的是 A、超时

TCPIP协议族 第四版 第四章答案

CHAPTER 4 Introduction to Network Layer Exercises 1.We mention one advantage and one disadvantage for a connectionless service: a.The connectionless service has at least one advantage. A connectionless service is simple. The source, destination, and the routers need to deal with each packet individually without considering the relationship between them. This means there are no setup and teardown phases. No extra packets are exchanged between the source and the destination for these two phases. b.The connectionless service has at least one disadvantage. The packets may arrive out of order; the upper layer that receive them needs to reorder them. 3.An n-bit label can create 2n different virtual-circuit identifier. 5.Each packet started from the source needs to have a fragmentation identification, which is repeated in each fragment. The destination computer use this identifica- tion to reassemble all fragments belonging to the same packet. 7.The delay in the connection-oriented service is always more than the delay in the connectionless service no matter the message is long or short. However, the ratio of the overhead delay (setup and teardown phases) to the data transfer delay (trans- mission and propagation) is smaller for a long message than a short message in a connection-oriented service. 9.A router is normally connected to different link (networks), each with different MTU. The link from which the packet is received may have a larger MTU than the link to which the packet is sent, which means that router needs to fragment the packet. We will see in Chapter 27 that IPv6 does not allow fragmentation at the router, which means the source needs to do some investigation and make the packet small enough to be carried through all links. 11.A fragment may have been lost and never arrives. The destination host cannot wait forever. The destination host starts a time and after the time-out, it can sends an error message (see Chapter 9) to inform the source host that the packet is lost and, if necessary, should be resent. The time-out duration can be based on the informa- 1

TCPIP协议族 第四版 第五章答案

CHAPTER 5 IPv4 Addresses Exercises 1. a.28 = 256 addresses b.216 = 65536 addresses c.264 = 1.846744737 × 1019 addresses 3.310=59,049 addresses 5. a.0x72220208 b.0x810E0608 c.0xD022360C d.0xEE220201 7. a.(8 bits) / (4 bits per hex digits) = 2 hex digits b.(16 bits) / (4 bits per hex digits) = 4 hex digits c.(24 bits) / (4 bits per hex digits) = 6 hex digits 9.We use Figure 5.6 (the right table) to find the class: a.The first byte is 208 (between 192 and 223) →Class C b.The first byte is 238 (between 224 and 299) →Class D c.The first byte is 242 (between 240 and 255) →Class E d.The first byte is 129 (between 000 and 127) →Class A 11. a.Class is A →netid: 114 and hostid: 34.2.8 b.Class is B →netid: 132.56 and hostid: 8.6 c.Class is C → netid: 208.34.54 and hostid: 12 1

TCPIP协议族4-9131415章答案

第4章IP地址:分类编址 8.试把以下的IP 地址从二进制记法转换为点分十进制记法。 a.01111111111100000110011111111101 b.110000001111000000011101 c.101100000001111101011101 d.111101111100011100011101 e.111100111000011111011101 解 我们把每一组8 位换成其等效十进制数,并增加隔开的点: a.127.240.103.253 b.175.192.240.29 c.223.176.31.93 d.239.247.199.29 e.247.243.135.221 11.试找出以下IP 地址的netid 和hostid: a.114.34.2.8 b.19.34.21.5 c.23.67.12.1 d.127.23.4.0 解 以上IP 地址都是A 类地址,故前8 位为netid,后24 位为hostid https://www.doczj.com/doc/6315385210.html,id:114hostid:34.2.8 https://www.doczj.com/doc/6315385210.html,id:19hostid:34.21.5 https://www.doczj.com/doc/6315385210.html,id:23hostid:67.12.1 https://www.doczj.com/doc/6315385210.html,id:127hostid:23.4.0 15.试用图表示出:IP 地址为8.0.0.0 的网络通过路由器连接到IP 地址为131.45.0.0 的网络。试为路由器的每一个接口选择IP 地址。还要在每一个网络上画出几个标有IP 地址的主机。每个网络是什么类别? 18.IP 地址为185.67.89.34 的主机需要进行环回测试。试问源地址和目的地址是什么? 解 源地址为:185.67.89.34 目的地址为: 127.x.y.z 28.什么是下面每一种情况的最大子网数目?

TCPIP协议族中文版答案3.0

文件说明: (1)据最后一节课老师的讲解,学过的章节为1-9、13、14、15、19、22。必考章节为1-9、13、14、15、22,共十三个章节,其中4、5、6、7(checksum)、9、11(3个路由协议)章节为重点章节,具体考卷内容也许会与此有所出入。 (2)翻译之后的答案习题颜色深浅有所区别,参考之时希望注意,能力有限,个别题目没有做出中文解释,还望谅解,英文图的上方出现的Figure1.E2 Solution to Excercixe13字样,译为关于习题2的解决方法图1。 (3)此文件是所给英文答案所有习题的答案,但据整理英文答案发现,老师所给答案只有奇数题号的习题,然而整理人不确定老师是否只考所给答案的习题,还望分享一二。 (4)整理过程难免有误差,许多专业名词的翻译也会出现些许出入,望慎重参考此文件,如若有所疑问可自行在IEC群文件中下载相关英文版习题答案,进行进一步的学习并加深个人对题意的理解。(5)如若明确文件中有错误出现,还望告知身边人,文件整理中尽量使得题意与答案处于同一页面中,如若带来不便,还请见谅,某些习题下方会有些许标注,还望注意到,以防理解出现偏差。 (6)此文件的最后会给大家一些老师提及的重点词汇、问题和整理过程中get到的一些专业名词,也许会对大家理解题意及英文版答案有所帮助。 (7)分享快乐,希望对大家有所帮助。

解:因D = T * V,D是传播距离,T是传播时间,V是传播速率,所以T=D/V,插入相应的值找寻需要的时间并在电缆中的传播。 T = D / V = (2500 m) / (200,000,000 m/s) = 0.0000125 s = 12.5 μs 【注】10base5,一种以太网标准,该标准用于使用粗同轴电缆、速度为10Mbps 的基带局域网络,在总线型网络中,最远传输距离为500米。1 * 10 -6 s= 1 μs 假设最小的帧大小为65字节或者520比特,L = T * R,L是帧的长度,T 是所用时间,R是数据率,因T=L/R,可以计算时间 T = L / R = (520 bits) / (10,000,000) bits/s = 0.000052 s = 52μs 【注】Mbps:传输速率是指设备的的数据交换能力,也叫"带宽",单位是Mbps(兆位/秒),目前主流的集线器带宽主要有10Mbps、54Mbps/100Mbps自适应型、100Mbps和150Mbps四种。1字节=8比特,也就是65字节=520比特, 填充需要46字节的数据部分,如果数据从上一层接收到的是42字节,则仍需要在这个数据上填充46-42=4字节 (1)相同点:对媒体访问有同等的权利;都可以访问媒体。 (2)不同点:CSMA/CD:先听后发,边发边听,冲突停发,随即延迟后重发;可以引发碰撞。 CSMA/CA:它需要介质有一个特殊的时间量来通知其他站点;不会发生碰撞。

TCPIP协议族 第四版 第九章答案

CHAPTER 9 Internet Control Message Protocol V ersion 4 (ICMPv4) Exercises 1. a.The original message is lost in transit. The sender can re-send the message. b.The reply is lost in transit. The sender can re-send the message. c.The original message was corrupted and discarde d. The sender can re-send the message. 3.It could happen that host B is unreachable, for some reason. The error message generated by an intermediate router could then be lost on its way back to host A. Or perhaps the datagram was dropped due to congestion and the error message generated by an intermediate router was lost. 5.The maximum value is 59 because the pointer points to a byte somewhere in the original IP header (a maximum of 60 bytes). An offset of 0 would point to the first byte, so an offset of 59 would point to the 60th byte. 1

TCPIP协议族4-9131415章答案

TCPIP协议族4-9131415章答案

第4章IP地址:分类编址 8.试把以下的IP 地址从二进制记法转换为点分十进制记法。 a.0 1111111 11110000 01100111 11111101 b.10101111 11000000 11110000 00011101 c.11011111 10110000 00011111 01011101 d.11101111 11110111 11000111 00011101 e.11110111 11110011 10000111 11011101 解 我们把每一组8 位换成其等效十进制数,并增加隔开的点: a.127.240.103.253 b.175.192.240.29 c.223.176.31.93 d.239.247.199.29 e.247.243.135.221 11.试找出以下IP 地址的netid 和hostid: a.114.34.2.8 b.19.34.21.5 c.23.67.12.1 d.127.23.4.0 解 以上IP 地址都是 A 类地址,故前8 位为netid,后24 位为hostid

https://www.doczj.com/doc/6315385210.html,id:114 hostid:34.2.8 https://www.doczj.com/doc/6315385210.html,id:19 h ostid:34.21.5 https://www.doczj.com/doc/6315385210.html,id:23 h ostid:67.12.1 https://www.doczj.com/doc/6315385210.html,id:127 hostid:23.4.0 15.试用图表示出:IP 地址为8.0.0.0 的网络通过路由器连接到IP 地址为131.45.0.0 的网络。试为路由器的每一个接口选择IP 地址。还要在每一个网络上画出几个标有IP 地址的主机。每个网络是什么类别? 18.IP 地址为185.67.89.34 的主机需要进行环回测试。试问源地址和目的地址是什么?解 源地址为:185.67.89.34 目的地址为:127.x.y.z 28.什么是下面每一种情况的最大子网数目? a.A 类地址;掩码是255.255.192.0 b.B 类地址;掩码是255.255.192.0 c.C 类地址;掩码是255.255.255.192 d.C 类地址;掩码是255.255.255.240 解

TCPIP协议族4-9131415章答案

第4章IP地址:分类编址 8.试把以下的 IP 地址从二进制记法转换为点分十进制记法。 a.0 1111111 11110000 01100111 11111101 b.10101111 11000000 11110000 00011101 c.11011111 10110000 00011111 01011101 d.11101111 11110111 11000111 00011101 e.11110111 11110011 10000111 11011101 解 我们把每一组 8 位换成其等效十进制数,并增加隔开的点: a.127.240.103.253 b.175.192.240.29 c.223.176.31.93 d.239.247.199.29 e.247.243.135.221 11.试找出以下 IP 地址的 netid 和 hostid: a.114.34.2.8 b.19.34.21.5 c.23.67.12.1 d.127.23.4.0 解 以上 IP 地址都是 A 类地址,故前 8 位为 netid,后 24 位为 hostid https://www.doczj.com/doc/6315385210.html,id:114 hostid:34.2.8 https://www.doczj.com/doc/6315385210.html,id:19 hostid:34.21.5 https://www.doczj.com/doc/6315385210.html,id:23 hostid:67.12.1 https://www.doczj.com/doc/6315385210.html,id:127 hostid:23.4.0 15.试用图表示出:IP 地址为 8.0.0.0 的网络通过路由器连接到 IP 地址为 131.45.0.0 的网络。试为路由器的每一个接口选择 IP 地址。还要在每一个网络上画出几个标有 IP 地址的主机。每个网络是什么类别? 18.IP 地址为 185.67.89.34 的主机需要进行环回测试。试问源地址和目的地址是什么?解 源地址为:185.67.89.34 目的地址为: 127.x.y.z

福师TCPIP协议原理及编程在线作业一答案

福师《TCP/IP协议原理与编程》在线作业一 一、单选题(共40 道试题,共80 分。) 1. 下列不属于通信子网层次的是()。 A. 物理层 B. 数据链路层 C. 传输层 D. 网络层 满分:2 分 2. 以下哪个IP地址可以在Internet上使用()。 A. 202.100.5.6 B. 127.0.0.1 C. 192.168.1.3 D. 10.20.5.5 满分:2 分 3. IP地址为172.16.101.20,子网掩码为255.255.255.0,则该IP地址中,网络地址占前()位。 A. 19 B. 21 C. 20 D. 24 满分:2 分 4. 关于网络协议,下列()选项是正确的。 A. 是网民们签订的合同 B. 协议,简单的说就是为了网络信息传递,共同遵守的约定 C. TCP/IP协议只是用于Internet,不能用于局域网 D. 拨号网络对应的协议是IPX/SPX

满分:2 分 5. 下面哪一项没有正确描述TCP/IP协议族? A. 与OSI参考模型的上层进行严格的映射。 B. 支持所有标准的物理层和数据链路层协议。 C. 通过数据报序列传送信息。 D. 在接收端将数据报重新组装成完整的信息。 满分:2 分 6. 以下哪种协议可以允许用户通过Internet进行相互通信? A. NetBEUI B. IPX/SPX C. TCP/IP D. AppleTalk 满分:2 分 7. 下面协议是动态路由协议的是()。 A. UDP B. RIP C. ARP D. TCP 满分:2 分 8. 为了保证连接的可靠建立,TCP通常采用()。 A. 3次握手法 B. 窗口控制机制 C. 自动重发机制 D. 端口机制 满分:2 分 9. 当你使用cache服务器发现网络流量非常大,查看是DNS解析的交通,如何? A. 增大服务器中DNS记录的SOA记录

相关主题
文本预览
相关文档 最新文档