网络协议实践课程设计报告-
- 格式:doc
- 大小:642.50 KB
- 文档页数:12
计算机网络课程设计报告姓名:学号:班级:指导老师:湖南科技大学计算机科学与工程学院2013年6月实验一1。
实验名称:网络聊天程序的设计与实现2。
实验目的:通过本实验能够了解socket通信的原理并在此基础上编写一个聊天程序了解TCP/IP的基础知识,发现TCP与UDP的优缺点以及在网络通信的应用.3.实验原理:从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
当网络的边缘部分中的两个主机使用网络的两个主机使用网络的核心部分进行端到端的通信时,只有主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。
从IP层来说,通信的两端是两个主机,IP数据报的首部明确的标志了这两个主机的IP地址.但是严格的讲,两个主机进行通信就是两个主机中的应用进程互相通信。
根据应用程序的不同需求,运输层需要有两种不同的运输协议,即是面向连接的TCP和无连接的UDP。
在使用这两个协议时运输层向高层用户屏蔽了下面的网络核心的细节,它使应用进程看见的就是好像在两个运输层实体间有一条端到端的逻辑通信信道,但这条逻辑通信信道对上层的表现却因运输层使用的不同协议而有很大的差别.当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的,但这种逻辑通信信道就相当于一条全双工的可靠信道。
但当运输层采用无连接的UDP协议时,这种逻辑通信信道仍然是一条不可靠信道.由于我在课程设计中采用的是UDP协议进行通信的,这里就只简述一下一些关于UDP的内容,UDP在传送数据之前不需要先建立连接。
远地主机的运输层在收到UDP报文后,不需要给出任何确认。
虽然UDP不提供可靠的交付,但在某些情况下UDP却是一种最有效的工作方式.为此当我们使用UTP协议使两个计算机中的进程要互相通信,不仅必需知道对方的IP地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)。
课程设计课程名称计算机网络课程设计题目名称文件传输协议的简单设计与实现学生学院专业班级___ _学号学生姓名______ _________指导教师______ _____2010 年 1 月 5 日设计摘要关键词:SOCKET编程,FTPclient/server程序摘要:本课程设计包含了文件传输协议的简单设计与实现。
文件传送是各种计算机网络实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。
文件传输协议的简单设计与实现建立在计算机网络实验环境TCP/IP 网络体系结构之上,使用socket 编程接口编写两个程序,分别为客户程序(client.c)和服务器程序(server.c),实现下述命令功能:get , put, pwd, dir, cd, ?, quit 等,利用了已有网络环境设计并实现简单应用层协议。
本设计包括了具体设计任务,基本思路及所涉及的相关理论,设计流程图,调试过程中出现的问题及相应解决办法,实验运行结果,核心程序,个人体会及建议等。
目录1、文件传输协议的简单设计与实现------------------------------181. 1 具体设计任务----------------------------------------------18 1.2 基本思路及所涉及的相关理论--------------------------------181.2.1基本思路-------------------------------------------------182.2.2 相关理论--------------------------------------------18 1.3设计流程图------------------------------------------------191.4实验运行情况----------------------------------------------191.5 核心程序--------------------------------------------------222.5.1 服务器(sever)程序---------------------------------222.5.2 客户(client)程序----------------------------------291.6心得体会-----------------------------------------------------------------------------37参考文献--------------------------------------------------------382、文件传输协议的简单设计与实现2. 1 具体设计任务计算机网络实验环境建立在TCP/IP 网络体系结构之上。
网络协议分析课程设计之协议编程实验一帧封装实验目的:•编写程序,根据给出的原始数据,组装一个IEEE 802.3格式的帧(题目)默认的输入文件为二进制原始数据(文件名分别为input1和input2))。
•要求程序为命令行程序。
比如,可执行文件名为framer.exe,则命令行形式如下:framer inputfile outputfile,其中,inputfile为原始数据文件,outputfile为输出结果。
•输出:对应input1和input2得结果分别为output1和output2。
试验要求:•编写程序,根据给出的原始数据,组装一个IEEE 802.3格式的帧(题目)默认的输入文件为二进制原始数据(文件名分别为input1和input2))。
•要求程序为命令行程序。
比如,可执行文件名为framer.exe,则命令行形式如下:framer inputfile outputfile,其中,inputfile为原始数据文件,outputfile为输出结果。
输出:对应input1和input2得结果分别为output1和output2验设计相关知识:帧:来源于串行线路上的通信。
其中,发送者在发送数据的前后各添加特殊的字符,使它们成为一个帧。
Ethernet从某种程度上可以被看作是机器之间的数据链路层连接。
按802.3标准的帧结构如下表所示(802.3标准的Ethernet帧结构由7部分组成)802.3标准的帧结构其中,帧数据字段的最小长度为46B 。
如果帧的LLC 数据少于46B ,则应将数据字段填充至46B 。
填充字符是任意的,不计入长度字段值中。
在校验字段中,使用的是CRC 校验。
校验的范围包括目的地址字段、源地址字段、长度字段、LLC 数据字段。
循环冗余编码(CRC)是一种重要的线性分组码、编码和解码方法,具有简单、检错和纠错能力强等特点,在通信领域广泛地用于实现差错控制。
CRC 校验码的检错能力很强,不仅能检查出离散错误,还能检查出突发错误。
网络协议课程设计一、课程目标知识目标:1. 学生能够理解网络协议的基本概念,掌握TCP/IP协议簇的核心协议工作原理;2. 学生能够描述不同网络层(如物理层、数据链路层、网络层、传输层等)的主要协议及其功能;3. 学生能够解释域名系统(DNS)、动态主机配置协议(DHCP)等应用层协议的工作流程。
技能目标:1. 学生能够运用所学知识分析网络通信中的问题,并能够选择合适的网络协议进行解决;2. 学生通过案例学习,能够模拟设计简单的网络通信协议,提升实际操作能力;3. 学生能够利用网络协议知识配置基本的网络设备,进行网络故障排查。
情感态度价值观目标:1. 培养学生对网络协议的兴趣,激发他们探索网络通信领域的热情;2. 学生通过学习网络协议,认识到网络技术对社会发展的重要性,增强社会责任感和团队合作精神;3. 学生在学习过程中,能够遵循网络安全规范,树立正确的网络道德观念。
课程性质:本课程为计算机网络基础知识课程,旨在帮助学生建立网络协议的基本观念,提高实际操作能力。
学生特点:学生为初中年级,具备一定的计算机操作基础,对网络知识有一定的好奇心,但缺乏系统的网络协议知识。
教学要求:结合学生特点,注重理论与实践相结合,采用案例分析、小组合作等教学方法,使学生在掌握知识的同时,提高实际操作和团队协作能力。
通过明确具体的课程目标,为教学设计和评估提供依据。
二、教学内容1. 网络协议基本概念:介绍协议的定义、作用和分类,以课本第二章第一节为基础,使学生理解网络协议的重要性。
- 协议的定义与作用- 协议的分类与层次结构2. TCP/IP协议簇:分析TCP/IP协议簇的四大层(网络接口层、网络层、传输层、应用层),结合课本第二章第二节,重点讲解各层的主要协议。
- 网络接口层与数据链路层协议- 网络层协议(IP、ICMP等)- 传输层协议(TCP、UDP等)- 应用层协议(HTTP、FTP、SMTP、DNS等)3. 网络协议配置与故障排查:以课本第二章第三节为例,教授如何配置网络设备,进行网络故障排查。
随着计算机网络技术的飞速发展,信息时代的人们对 Internet 的依赖性越来越大。
当今时代,电子商务和电子政务的应用越来越广泛,然而网络安全问题严重束缚了计算机网络的进一步应用。
安全套接层SSL(Secure Sockets Layer)协议是由 Netscape 公司设计开辟的安全协议,主要用于加强应用程序之间的数据的安全性。
SSL 协议是基于 Web 应用的安全协议,它采用了RSA 算法、 RC4— 128、RC 一 128、三重 DES 算法和 MD5 等加密技术实现两个应用层之间的机密性、可靠性和数据完整性,并采用X.509 数字证书实现鉴别,其加密的目的是建立一个安全的通讯通道,而且该通道可在服务器和客户机两端同时实现支持。
SSL 协议用来建立一个在客户和服务器之间安全的TCP 连接,特别可被用来认证服务器,可选地认证客户,执行密钥交换,提供消息认证,而且还可以完成在TCP 协议之上的任意应用协议数据的完整性和隐蔽性服务。
SSL 为在 Internet 上安全地传送数据提供了一介加密通道,建立一个安全连接,主要实现以下工作:加密网络上客户端和服务器相互发送的信息;验证信息在传送过程是否安全完整:运用非对称密钥算法验证服务器;验证客户身份;交换应用层数据。
是由Netscape 设计的一种开放性协议,它提供了一种介于应用层和传输层之间的数据安全套接层协议机制。
SSL 位于TCP/IP 协议与各种应用层协议之间,为TCP/IP 连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。
其目的是为客户端(浏览器)到服务端之间的信息传输构建一个加密通道,此协议是与操作系统和Web 服务器无关的。
它建立在可靠的传输协议(如TCP)之上,位于SSL 协议的底层,为高层协议提供数据封装、压缩、加密等基本功能的支持。
在SSL 中,所有数据被封装在记录中,SSL 握手协议中的报文,要求必须放在一个SSL 记录协议层的记录里,但应用层协议的报文,允许占用多个SSL 记录来传送(1) SSL 记录头格式SSL 记录头可以是2 个或者3 个字节长的编码。
计算机网络课程设计实验报告-- CSMA/CD协议仿真学院:班级:学号:姓名:指导老师:1.CSMA/CD协议工作原理及性能分析:答:CSMA/CD协议的工作原理: CSMA/CD即载波监听多点接入/碰撞检测,它是一种争用型的、分布式的介质访问控制协议。
该协议的实质是“载波监听”和“碰撞检测”,其网络中的各个站(节点)都能独立地决定数据帧的发送与接收。
“载波监听”就是“发送前先监听”,即每一个站在发送数据帧之前先要检测一下总线上是否有其他站在发送数据,如果有,则暂时不要发送数据,要等待信道变为空闲时再发送。
这时,如果两个以上的站同时监听到介质空闲并发送帧,则会产生冲突现象,这使发送的帧都成为无效帧,发送随即宣告失败。
“碰撞检测”就是“边发送边监听”,即适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。
每个站必须有能力随时检测冲突是否发生,一旦发生冲突,则应停止发送,以免介质带宽因传送无效帧而被白白浪费,然后随机延时一段时间后,再重新争用介质,重发送帧。
CSMA/CD协议简单、可靠,其网络系统(如Ethernet)被广泛使用。
CSMA/CD协议的性能分析:评价一个协议的好坏,按照其单位时间冲突概率,发送成功次数,以及对节点是否公平。
2、CSMA/CD协议基本工作流程:NNN N3.分析、理解所给的仿真程序(对照流程图说明是如何仿真的、每个sleep函数的作用):答:根据流程图,先看线程A的工作流程:首先检查总线是否空闲,若空闲则发送数据,用sleep()函数模拟传输时延。
边发送边检测总线上的数据是否是A 线程发送的数据,以此来模拟是否有碰撞产生,若没有,则直至数据发送完再用sleep()函数模拟帧时隙。
如果有碰撞产生,则立即停止发送数据,再用Sleep(randNum*(int)pow(2.0,(CollisionCounter>10)?10:CollisionCounter)*Collisionwindow函数执行二进制指数退避算法重发数据,若重发次数超过16次,则认为发送数据失败。
WSN课程设计报告一、教学目标本课程的教学目标是使学生掌握WSN(无线传感网络)的基本概念、原理和技术,培养学生运用WSN解决实际问题的能力。
具体分为以下三个维度:1.知识目标:学生能够理解WSN的基本原理、组成结构、工作原理及其在各个领域的应用;掌握WSN的通信协议、数据处理和数据融合等技术。
2.技能目标:学生能够运用WSN相关知识分析实际问题,设计简单的WSN系统,并进行调试和优化;具备阅读和理解WSN相关英文文献的能力。
3.情感态度价值观目标:培养学生对新技术的敏感度和好奇心,增强其创新意识和团队协作精神,使其认识到WSN技术在解决现实问题中的重要性和可持续发展前景。
二、教学内容本课程的教学内容主要包括以下几个部分:1.WSN基本概念:介绍WSN的定义、特点、发展历程和应用领域。
2.WSN组成结构:讲解WSN的硬件、软件及网络结构,包括传感器、通信模块、数据处理单元等。
3.WSN工作原理:阐述WSN的感知、传输、处理和通信等基本原理。
4.WSN通信协议:介绍WSN中的典型通信协议,如IEEE 802.11、ZigBee等。
5.WSN数据处理与融合:讲解WSN中的数据处理方法、数据融合技术和算法。
6.WSN应用案例:分析WSN在环境监测、医疗保健、智能家居等领域的应用实例。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,包括:1.讲授法:教师讲解基本概念、原理和技术,引导学生掌握WSN的核心知识。
2.案例分析法:分析WSN的实际应用案例,让学生了解WSN在现实世界中的作用。
3.讨论法:学生针对WSN相关话题进行讨论,培养学生的思考和表达能力。
4.实验法:安排实验室实践环节,让学生动手设计、调试和优化WSN系统。
四、教学资源为了支持教学,我们将准备以下教学资源:1.教材:选用权威、实用的WSN教材,为学生提供系统性的学习资料。
2.参考书:推荐学生阅读WSN领域的经典著作,拓展知识面。
《网络协议与网络编程》课程设计要求及题目一、目的:通过课程设计,学生可以进一步理解网络编程相关的知识与操作步骤。
具备独立设计网络程序的能力,重点培养学生的思维能力、创新能力与实际动手能力。
二、内容与要求学习《Visual C++网络编程开发实战》光盘及教材相关章节知识。
基本要求:网络协议与网络编程课程设计可选内容很多,每一次课程设计视具体情况而定。
要求完成以下任务:1、掌握Winsock常用函数的使用的应用(上期教材);2、学习网络编程的基本步骤和方法(上期、本期教材);3、参考分析、学习一个网络程序设计应用案例(本期教材)。
4、独立完成简单的网络程序的编写(提交作业)。
4、编写环境为Visual C++6.0版。
根据选定的题目自愿组成编码团队,组织落实,明确分工,团结合作,协同实现算法的编写工作。
具体要求:题目(从下面的题目中选择一题)1、网络即时通信程序设计要求:实现一对多的网络聊天功能,采用多线程与异步套接字技术;Windows界面显示;方便的界面操作和各户管理;具有文件传输等功能。
(参考本期教材11章)2、网络通信程序设计要求:网络上两台主机,通过网络服务器端程序和客户端程序,进行数据传送通信。
实现各种格式文件的传送,并显示传输文件的大小,所用时间,完成情况。
可指定发送的文件\文件夹。
有操作界面和发送接收文件状态信息显示。
要求具备实时传输功能。
(参考本期教材3、7章)3、FTP客户端程序设计要求:网络上两台主机间采用FTP进行文件传输,设计FTP客户端程序,具有登录连接服务器、文件上传、下载、浏览等功能。
(参考本期教材3章)。
4、网络IE浏览器程序设计要求:采用浏览器控件和ChtmlView类设计一款浏览器,可以实现网页浏览的基本功能及其他功能,如html代码不可见,只能浏览,不可保存等等功能。
(参考本期教材4章)。
5、在线网络音频、视频播放器设计要求:在VC中实现视频、音频播放器设计,需要具有播放、暂停、播放文件栏目选择;上一首、下一首、歌曲列表、进度条显示、歌曲搜索等功能。
计算机网络课程设计华中科技大学信息学部软件姓名:专业班级:学号:指导老师:目录一、课程的性质、目的和任务 (3)二、课程内容和基本要求 (3)(一)、协议包的分析,网络协议的组成 (3)1、捕获ARP请求,ARP应答数据包 (3)2、捕获ICMP数据包,对其进行分析研究 (4)3、捕获TCP“三次握手”“2次两次握手”释放连接数据包 (6)4、捕获HTTP,DNS,DHCP数据包,分析其构成 (10)5、通过捕捉smtp协议包捕捉邮箱密码 (15)小结 (15)(二)、编写一个程序自动生成CRC校验码 (15)程序代码: (15)编译运行 (16)(三)、机架实验 (17)小结 (17)(四)、模拟学校校园网 (17)校园网拓扑图 (17)网络测试 (18)小结 (22)一、课程的性质、目的和任务该课程为实践类课程。
通过本课程,(1)学生需要深入理解网络协议的组成,对网络中传输数据的过程有更深入的认识。
(2)学生需要了解计算机网络工程设计的一般任务,明确计算机网络设计与建设的基本原则,熟悉计算机网络需求分析的目标、任务与方法,掌握计算机网络设计的通用方法,并学会撰写规范的计算机网络方案书。
二、课程内容和基本要求(一)、协议包的分析,网络协议的组成1、捕获ARP请求,ARP应答数据包,分析其组成特征。
总结ARP协议运行的基本过程。
本机(192.168.84.69)ping目的主机(192.168.84.39):抓包截图:本机192.168.84.69 源MAC地址 c8:9c:dc:59:39:30目的主机 192.168.84.39 目的MAC地址 c8:9c:dc:5a:2b:57ARP协议运行过程:ARP进程在本局域网上发送ARP请求,目的主机在ARP 请求分组里看到自己的IP,就发送一个响应分组,写入自己的硬件地址。
2、捕获ICMP数据包,对其进行分析研究。
(icmp请求数据包,icmp应答数据包)Ping 进行ICMP数据包截获ICMP请求数据包:TYPE:8CODE:0 CHECKSUM :0X225CICMP应答数据包:TYPE:0CODE:0CHECKSUM :0X2A5CICMP协议数据包对IP分组在传送时出现的异常情况进行报告,对IP报文传输时出现的差错、拥塞、路由改变、以及路由器或主机信息的获取等情况,向源端主机提交报告,由源主机采取相应措施,改进传输质量。
网络协议仿真课程设计总结一、课程目标知识目标:1. 让学生理解网络协议的基本概念、功能和分类,掌握常见网络协议的工作原理。
2. 使学生掌握网络协议仿真的基本方法,学会运用仿真软件进行网络协议的分析与设计。
3. 帮助学生了解网络协议在实际应用中的优势和局限性,认识网络协议的发展趋势。
技能目标:1. 培养学生运用网络协议仿真软件进行实验操作的能力,提高学生的实践操作技能。
2. 培养学生分析和解决网络协议相关问题的能力,提升学生的逻辑思维和创新能力。
3. 培养学生团队协作和沟通表达的能力,学会与他人共同完成网络协议仿真项目。
情感态度价值观目标:1. 激发学生对网络协议的兴趣,培养学生热爱网络技术、主动探索新知识的情感。
2. 培养学生严谨的科学态度,养成良好的实验习惯,增强学生的责任心。
3. 通过团队合作,培养学生的集体荣誉感,提高学生的团队协作精神和沟通能力。
课程性质:本课程为计算机网络相关课程的实践环节,侧重于网络协议仿真技术的应用与实践。
学生特点:学生已具备一定的计算机网络基础知识,具有较强的学习能力和实践操作欲望。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,充分调动学生的积极性,提高学生的实践能力和创新能力。
在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。
将课程目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. 网络协议基本概念:介绍网络协议的定义、组成要素和功能,结合教材相关章节,让学生掌握网络协议的基本知识。
2. 网络协议分类与工作原理:分析各类网络协议(如TCP/IP、HTTP、FTP 等)的工作原理,通过实例讲解,使学生了解不同网络协议的特点和应用场景。
3. 网络协议仿真技术:讲解网络协议仿真的基本方法,介绍仿真软件(如Wireshark、NS3等)的使用,让学生学会运用仿真工具分析网络协议性能。
4. 实践操作与案例分析:组织学生进行实际操作,通过完成具体项目,巩固网络协议仿真的方法和技巧。
成都信息工程学院网络工程系《网络协议实践》课程设计报告签名:目录第一章 TCP和ARP协议基础............................................................................... 错误!未定义书签。
1.1什么是TCP协议........................................ 错误!未定义书签。
1.2TCP报文类型与格式 .................................... 错误!未定义书签。
1.3什么是ARP协议........................................ 错误!未定义书签。
1.4ARP报文类型和结构 .................................... 错误!未定义书签。
第二章抓包验证TCP协议和ARP协议.............................................................. 错误!未定义书签。
2.1实验环境.............................................. 错误!未定义书签。
2.2实验步骤与抓包结果分析................................ 错误!未定义书签。
2.3实验结论.............................................. 错误!未定义书签。
第三章 OSPF路由协议验证分析.. (3)3.1实验环境及工具介绍 (9)3.2实验步骤及抓包结果分析 (10)3.3实验结论--OSPF运行过程说明 (12)3.4实验心得体会 (12)网络协议实践第一章 TCP协议基础1.1 什么是TCP协议TCP协议TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明。
在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。
Transmission Control Protocol 传输控制协议,TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议。
在传输数据前要先建立逻辑连接,然后再传输数据,最后释放连接3个过程。
TCP提供端到端、全双工通信;采用字节流方式,如果字节流太长,将其分段;提供紧急数据传送功能。
尽管T C P和U D P都使用相同的网络层( I P),T C P却向应用层提供与U D P完全不同的服务。
T C P提供一种面向连接的、可靠的字节流服务。
面向连接意味着两个使用T C P的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个T C P连接。
这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。
1.2TCP的头报文格式图1.TCP报头字段说明:U R G 紧急指针( u rgent pointer)有效。
A C K 确认序号有效。
P S H 接收方应该尽快将这个报文段交给应用层。
R S T 重建连接。
S Y N 同步序号用来发起一个连接。
这个标志和下一个标志将在第1 8章介绍。
F I N 发端完成发送任务。
1.3 TCP连接的建立TCP协议通过三个报文段完成连接的建立,这个过程称为三次握手(three-wayhandshake) 。
1) 请求端(通常称为客户)发送一个S Y N段指明客户打算连接的服务器的端口,以及初始序号。
这个S Y N段为报文段1。
2) 服务器发回包含服务器的初始序号的S Y N报文段(报文段2)作为应答。
同时,将确认序号设置为客户的I S N加1以对客户的S Y N报文段进行确认。
一个S Y N将占用一个序号。
3) 客户必须将确认序号设置为服务器的I S N加1以对服务器的S Y N报文段进行确认(报文段3)。
图2.TCP连接建立发送第一个S Y N的一端将执行主动打开( active open)。
接收这个S Y N并发回下一个S Y N的另一端执行被动打开( passive open)1.4 TCP连接的释放建立一个连接需要三次握手,而终止一个连接要经过4次握手。
这由T C P的半关闭(h a l f -c l o s e)造成的。
既然一个T C P连接是全双工(即数据在两个方向上能同时传递),因此每个方向必须单独地进行关闭。
这原则就是当一方完成它的数据发送任务后就能发送一个F I N来终止这个方向连接。
当一端收到一个F I N,它必须通知应用层另一端几经终止了那个方向的数据传送。
发送F I N通常是应用层进行关闭的结果。
收到一个F I N只意味着在这一方向上没有数据流动。
一个T C P连接在收到一个F I N后仍能发送数据。
而这对利用半关闭的应用来说是可能的,尽管在实际应用中只有很少的T C P应用程序这样做。
图4.TCP链接释放1、现在A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭 TCP 连接。
A把连接释放报文段首部的 FIN = 1,其序号seq = u,等待 B 的确认。
2、B发出确认,确认号 ack = u +1,而这个报文段自己的序号 seq = v。
TCP 服务器进程通知高层应用进程。
从 A 到 B 这个方向的连接就释放了,TCP 连接处于半关闭状态。
B 若发送数据,A 仍要接收..3、若 B 已经没有要向 A 发送的数据,其应用进程就通知 TCP 释放连接,4、A 收到连接释放报文段后,必须发出确认。
在确认报文段中 ACK = 1,确认号 ack = w +1,自己的序号 seq = u + 1。
TCP 连接必须经过时间 2MSL 后才真正释放掉1.5抓包验证TCP协议1.5.1实验环境一台装有GNS3、Wireshark软件的PC机。
1.5.2实验步骤与抓包结果分析为了方便抓包且更利于分析,本次综合实验采用如下拓扑:图5 实验拓扑两台路由器简要配置如下:R1(config)#int fa0/1R1(config-if)#ip add 192.168.1.1 255.255.255.0R1(config-if)#no shR2(config)#int fa0/0R2(config-if)#ip add 192.168.1.2 255.255.255.0R2(config-if)#no shR2(config)#line vty 0 4R2(config-line)#password cisco在R1上telnet R2,并用Wireshark抓包,抓取TCP的建立连接三次握手和释放连接4次握手包:启动wireshark,抓取经过R1 f0/1接口的数据包。
在R2上设置TELNET密码为cisco,在R1上TELNET R2,连上去以后释放连接:R1#telnet 192.168.1.2Trying 192.168.1.2 ... OpenUser Access VerificationPassword:R2>exit[Connection to 192.168.1.2 closed by foreign host]然后我们在wireshark里面观察抓取的报文:图6 TCP建立连接的三次握手很明显,序号为5、6、7的数据包为TCP的三次握手建立的过程。
R1发送SYN包给R2,请求连接,然后R2发送ACK和SYN标志位都为1的包给R1,表示回应R1请求并且向R1请求连接,最后R1发送ACK包响应R2的连接请求,至此连接建立。
图7 TCP释放连接的4次挥手图7是TCP四次挥手释放连接的数据包。
R1发送FIN包给R2,请求释放连接,R2回复一个ACK包给R1,序列号是FIN的序列号+1,之后R2发送FIN包给R1,请求释放链接,然后R1回复ACK包,至此连接释放。
第二章ARP协议2.1 什么是ARP协议ARP是Address Resolution Protocol(RFC826)的缩写。
中文译做“地址解析协议”,本质是完成网络地址到物理地址的映射,具体到以太网,它使用的是动态绑定转换的方法。
在TCP/IP协议中,每一个网络结点是用IP地址标识的,IP地址是一个逻辑地址。
而在以太网中数据包是靠48位MAC地址(物理地址)寻址的。
因此,必须建立IP地址与MAC 地址之间的对应(映射)关系,ARP协议就是为完成这个工作而设计的。
其作用为通过IP地址寻找主机的MAC地址。
2.2 ARP欺骗ARP协议是建立在信任局域网内所有结点的基础上的,它很高效,但却不安全。
它是无状态的协议,不会检查自己是否发过请求包,也不管(其实也不知道)是否是合法的应答,只要收到目标MAC是自己的ARP reply包或arp广播包(包括ARP request和ARP reply),都会接受并缓存。
这就为ARP欺骗提供了可能,恶意节点可以发布虚假的ARP报文从而影响网内结点的通信,甚至可以做“中间人”。
当局域网中的某台机器B向A发送一个自己伪造的ARP应答,而如果这个应答是B冒充C伪造来的,即IP地址为C的IP,而MAC地址是伪造的,则当A接收到B伪造的ARP 应答后,就会更新本地的ARP缓存,这样在A看来C的IP地址没有变,而它的MAC地址已经不是原来那个了。
在A上C的MAC地址被改变成一个不存在的MAC地址,这样就会造成网络不通,导致A不能Ping通C,这就是一个简单的ARP欺骗。
ARP欺骗方式:伪装成被攻击主机广播ARP请求伪装成被攻击者进行ARP应答伪装成网关进行ARP应答2.3 ARP的分组格式图8.ARP分组格式字段说明:两个字节长的以太网帧类型表示后面数据的类型。
对于A R P请求或应答来说,该字段的值为0 x 0 8 0 6。
硬件类型字段表示硬件地址的类型。
它的值为1即表示以太网地址。
接下来的两个1字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。
对于以太网上I P地址的A R P请求或应答来说,它们的值分别为6和4。
操作字段指出四种操作类型,它们是A R P请求(值为1)、A R P应答(值为2)、R A R P请求(值为3)和R A R P应答(值为4)。
2.4 抓包验证ARP协议2.4.1 实验环境XPSP3下用wireshark抓得ARP请求及应答报文2.4.2 实验步骤与抓包结果分析为了方便抓包且更利于分析,本次综合实验采用如下拓扑:在R1 telnet R2刚开始时,R1会发送ARP报文请求R2的MAC地址。