tcpip实验报告

tcpip实验报告
tcpip实验报告

网络协议分析实验

一、实验目的

通过使用协议分析软件,对通信系统的通信过程进行监控、分析,以了解通信协议的工作过程。

二、实验内容

利用协议分析软件(如:Wireshark)跟踪局域网报文(如条件允许也可跟踪多种局域网协议报文),实验内容如下:

将安装协议分析软件的PC接入以太网中,跟踪PC之间的报文,并存入文件以备重新查。

设置过滤器过滤网络报文以检测特定数据流。

利用协议分析软件的统计工具显示网络报文的各种统计信息。

三、实验步骤

1、在PC中安装协议分析软件。

2、启动Wireshark协议分析软件,选择抓包菜单项启动实时监视器,开始实时跟踪显示网络数据报文。可根据系统提示修改显示方式。

3、调出跟踪存储的历史报文,选择有代表性的ETHERNET,IEEE802.3,IP,ICMP,TCP,UDP报文,对照有关协议逐个分析报文各字段的含义及内容。

EHERNET报文格式

IEEE802.3报文格式

4、设置过滤器属性,如目的地址,源地址,协议类型等。如过滤不需要的网络报文,过滤器允许设置第二层,第三层或第四层的协议字段。

过滤器有两种工作方式:

1)捕获前过滤:协议分析软件用过滤器匹配网络上的数据报文,仅当匹配通过时才捕获报文。

2)捕获后过滤:协议分析软件捕获所有报文,但仅显示匹配符合过滤条件的报文。选择统计菜单项可以显示网络中各种流量的统计信息,如:关于字节数,广播中报文数,出错数等。

UDP客户/服务器实验

一、实验目的

本实验目的是使用因特网提供的UDP传输协议,实现一个简单的UDP客户/服务器程序,以了解传输层所提供的UDP服务的特点,应用层和传输层之间的软件接口风格,熟悉socket 机制和UDP客户端/服务器方式程序的结构。

二、实验内容

本实验为UDP客户/服务器实验。实验内容:UDP echo客户/服务器程序的设计与实现。UDP echo客户/服务器程序完成以下功能:

客户从标准输入读一行文本,写到服务器上;服务器从网络输入读取此行,并回射(echo)给客户;客户读此回射行,并将其写到标准输出。

三、实验步骤

1、总体设计

客户程序从标准输入读一行文本,写到服务器程序上;服务器程序从网络输入读取此行,并回射给客户程序;客户程序读此回射行,并将其写到标准输出。

2、详细设计

UDP客户-服务器程序所用套接口函数1)服务器main函数

2)服务器str_echo函数

3)客户main函数

4)客户str_echo函数

#include

#include

#include

#include

#include

#define MAXLINE 4096

#define LISTENQ 1024 /* 2nd argument to listen() */ #define SERV_PORT 9877

#define SA struct sockaddr

static int sockfd;

void dg_echo(int, SA *, socklen_t);

int

main(int argc, char ** argv)

{

struct sockaddr_in servaddr, cliaddr;

if((sockfd = socket(AF_INET, SOCK_DGRAM, 0))<0) {

printf("socket error.\n");

exit(1);

}

bzero(&servaddr, sizeof(servaddr));

servaddr.sin_family = AF_INET;

servaddr.sin_addr.s_addr = htonl(INADDR_ANY);

servaddr.sin_port = htons(SERV_PORT);

bind(sockfd, (SA *)&servaddr, sizeof(servaddr));

dg_echo(sockfd, (SA *)&cliaddr, sizeof(cliaddr));

}

void

dg_echo(int sockfd, SA *pcliaddr, socklen_t clilen)

{

int n;

socklen_t len;

char mesg[MAXLINE];

for ( ; ; ) {

len = clilen;

n = recvfrom(sockfd, mesg, MAXLINE, 0, pcliaddr, &len);

sendto(sockfd, mesg, n, 0, pcliaddr, len);

}

}

Cli

#include

#include

#include

#include

#include

#define MAXLINE 4096

#define LISTENQ 1024 /* 2nd argument to listen() */ #define SERV_PORT 9877

#define SA struct sockaddr

void dg_cli(FILE *, int, const SA *, socklen_t);

main(int argc, char **argv)

{

int sockfd;

struct sockaddr_in servaddr;

if (argc != 2) {

printf("usage:udpcli01sigio \n");

exit(1);

}

bzero(&servaddr, sizeof(servaddr));

servaddr.sin_family = AF_INET;

servaddr.sin_port = htons(SERV_PORT);

inet_pton(AF_INET, argv[1], &servaddr.sin_addr);

if((sockfd = socket(AF_INET, SOCK_DGRAM, 0))<0) {

printf("socket error.\n");

exit(1);

}

dg_cli(stdin, sockfd, (SA *)&servaddr, sizeof(servaddr));

exit(0);

}

dg_cli(FILE *fp, int sockfd, const SA *pservaddr, socklen_t servlen)

{

int n;

char sendline[MAXLINE], recvline[MAXLINE + 1];

while (fgets(sendline, MAXLINE,fp) != NULL) {

sendto(sockfd, sendline, strlen(sendline), 0, pservaddr, servlen);

n = recvfrom(sockfd, recvline, MAXLINE, 0, NULL, NULL);

recvline[n] = 0; /* null terminate */

fputs(recvline, stdout);

}

}

TCP客户/服务器实验

四、实验目的

本实验目的是使用因特网提供的TCP传输协议,实现一个简单的TCP客户/服务器程序,以了解传输层所提供的TCP服务的特点,应用层和传输层之间的软件接口风格,熟悉socket 机制和TCP客户端/服务器方式程序的结构。

五、实验内容

本实验为TCP客户/服务器实验。实验内容:TCP echo客户/服务器设计与实现。TCP echo 客户/服务器程序完成以下功能:

客户从标准输入读一行文本,写到服务器上;服务器从网络输入读取此行,并回射(echo)给客户;客户读此回射行,并将其写到标准输出。

六、实验步骤

1、总体设计

客户程序从标准输入读一行文本,写到服务器程序上;服务器程序从网络输入读取此行,并回射给客户程序;客户程序读此回射行,并将其写到标准输出。

2、详细设计

TCP客户-服务器程序所用套接口函数1)服务器main函数

2)服务器str_echo函数

3)客户main函数

4)客户str_echo函数

Serv

#include

#include

#include

#include

#include

#define MAXLINE 4096

#define LISTENQ 1024 /* 2nd argument to listen() */ #define SERV_PORT 9877

#define SA struct sockaddr

void str_echo(int);

ssize_t readline(int, void *, size_t);

static ssize_t my_read(int, char *);

int

main(int argc, char **argv)

{

int listenfd, connfd;

pid_t childpid;

socklen_t clilen;

struct sockaddr_in cliaddr,servaddr;

if ((listenfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { printf("socket error.\n");

exit(1);

}

bzero(&servaddr, sizeof(servaddr));

servaddr.sin_family = AF_INET;

servaddr.sin_addr.s_addr = htonl(INADDR_ANY);

servaddr.sin_port = htons(SERV_PORT);

if (bind(listenfd, (SA *)&servaddr, sizeof(servaddr)) < 0) {

printf("bind error.\n");

exit(1);

}

if (listen(listenfd,LISTENQ) < 0) {

printf("listen error.\n");

exit(1);

}

for( ; ;) {

clilen = sizeof(cliaddr);

if ( (connfd = accept(listenfd, (SA *) &cliaddr, &clilen)) < 0) { printf("accept error.\n");

exit(1);

}

if((childpid = fork()) == 0) {

close(listenfd) ;

str_echo(connfd);

exit(0);

}

close(connfd);

}

}

void

str_echo(int sockfd)

{

ssize_t n;

char line[MAXLINE];

for ( ; ; ) {

if ( (n = readline(sockfd, line, MAXLINE)) == 0)

return; /* connection closed by other end */

write(sockfd, line, n);

}

}

/*end str_echo*/

ssize_t

readline(int fd, void *vptr, size_t maxlen)

{

int n, rc;

char c, *ptr;

ptr = vptr;

for (n = 1; n < maxlen; n++) {

if ( (rc = my_read(fd, &c)) == 1) {

*ptr++ = c;

if (c == '\n')

break; /* newline is stored, like fgets() */

} else if (rc == 0) {

if (n == 1)

return(0); /* EOF, no data read */

else

break; /* EOF, some data was read */ } else

return(-1); /* error, errno set by read() */ }

*ptr = 0; /* null terminate like fgets() */

return(n);

}

/* end readline */

static ssize_t

my_read(int fd, char *ptr)

{

static int read_cnt = 0;

static char *read_ptr;

static char read_buf[MAXLINE];

if (read_cnt <= 0) {

again:

if ( (read_cnt = read(fd, read_buf, sizeof(read_buf))) < 0) {

if (errno == EINTR)

goto again;

return(-1);

} else if (read_cnt == 0)

return(0);

read_ptr = read_buf;

}

read_cnt--;

*ptr = *read_ptr++;

return(1);

}

/*end ssize_t*/

Cli

#include

#include

#include

#include

#include

#define MAXLINE 4096

#define LISTENQ 1024 /* 2nd argument to listen() */ #define SERV_PORT 9877

#define SA struct sockaddr

void str_cli(FILE *,int);

ssize_t readline(int, void *, size_t);

static ssize_t my_read(int, char *);

int

main(int argc, char **argv)

{

int sockfd;

struct sockaddr_in servaddr;

if (argc != 2) {

printf("usage:tcpcli01 ");

exit(1);

}

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { printf("socket error.\n");

exit(1);

}

bzero(&servaddr, sizeof(servaddr));

servaddr.sin_family = AF_INET;

servaddr.sin_port = htons(SERV_PORT);

inet_pton(AF_INET, argv[1], &servaddr.sin_addr);

if (connect(sockfd, (SA *)&servaddr, sizeof(servaddr)) < 0) { printf("connect error.\n");

exit(1);

}

str_cli(stdin, sockfd);

exit(0);

}

void

str_cli(FILE *fp,int sockfd)

{

char sendline[MAXLINE], recvline[MAXLINE];

while (fgets(sendline,MAXLINE, fp) != NULL) {

write(sockfd, sendline, strlen(sendline));

if (readline(sockfd, recvline, MAXLINE) == 0) {

printf("str_cli:server terminated prematurely.\n");

exit(1);

}

fputs(recvline, stdout);

}

}

/*end str_cli */

ssize_t

readline(int fd, void *vptr, size_t maxlen)

{

int n, rc;

char c, *ptr;

ptr = vptr;

for (n = 1; n < maxlen; n++) {

if ( (rc = my_read(fd, &c)) == 1) {

*ptr++ = c;

if (c == '\n')

break; /* newline is stored, like fgets() */

} else if (rc == 0) {

if (n == 1)

return(0); /* EOF, no data read */

else

break; /* EOF, some data was read */

} else

return(-1); /* error, errno set by read() */ }

*ptr = 0; /* null terminate like fgets() */

return(n);

}

/* end readline */

static ssize_t

my_read(int fd, char *ptr)

{

static int read_cnt = 0;

static char *read_ptr;

static char read_buf[MAXLINE];

if (read_cnt <= 0) {

again:

if ( (read_cnt = read(fd, read_buf, sizeof(read_buf))) < 0) {

if (errno == EINTR)

goto again;

return(-1);

} else if (read_cnt == 0)

return(0);

read_ptr = read_buf;

}

read_cnt--;

*ptr = *read_ptr++;

return(1);

}

/*end ssize_t*/

总结:实验对于我们来说是很重要的,经过这三次实验,已经大致了解了TCP/IP的工作原

理,知道了要想实验客户机和服务器的连连通,具体的步骤是什么。在试验中我们组遇到了很大的困难,几乎每一个步骤都会遇到很多问题,不多最后还是努力的克服了,感谢老师对我们的帮助。

TCPIP实验指导书

TCP/IP协议分析与编程实践实验提要 本学期实验课程为24学时,必做实验6个,具体内容如下介绍。除实验5要求采用winpcap,其他实验不限定实现的编程语言和平台。 实验1-1 系统时间同步程序 要求:(1)TCP (2)C/S 摘要:设计简单的客户/服务器程序实现客户系统时间和服务器系统时间同步。 具体: 客户:(1)客户创建流套接字,向服务器发起TCP连接。 (2)连接创建成功后,接收服务器返回的时间,更新客户系统时间。 (3)断开与服务器的连接。 服务器:(1)服务器创建监听套接字,监听客户TCP连接请求。 (2)当收到一个客户TCP连接请求,创建连接套接字同意与其创建连接。 (3)获取系统时间,通过连接套接字返回给客户。 实验1-2 系统时间同步程序 要求:(1)UDP (2)C/S 摘要:设计简单的客户/服务器程序实现客户系统时间和服务器系统时间同步。 具体: 客户:(1)客户创建数据报套接字,通过该套接字向服务器发出”time”命令获取服务器系统时间。 (2)接收服务器返回的时间,更新客户系统时间。 (3)断开与服务器的连接。 服务器:(1)服务器创建数据报套接字,等待接收客户数据。 (2)接收客户发来的“time”命令,获取系统时间,通过套接字返回给客户。实验2 聊天程序设计 要求:(1)TCP/UDP (2)C/S 摘要:设计简单的客户/服务器程序实现客户和服务器相互收发数据直到一端输入“end”结束。 具体: 客户:(1)客户创建流套接字,向服务器发起TCP连接。(或是客户创建数据报套接字)

(2)连接创建成功后,通过套接字向服务器持续发送或是接收数据。 (3)输入或是收到命令”end”,结束收发数据,并断开与服务器的连接。 服务器:(1)服务器创建监听套接字,监听客户TCP连接请求。(或是创建数据报套接字)(2)当收到一个客户TCP连接请求,创建连接套接字同意与其创建连接。 (3)通过套接字与客户持续发送或是接收数据。 (4)输入或是收到”end“命令,结束与该客户的收发数据,断开连接。 实验3 TCP和UDP套接字综合应用 要求:(1)TCP、UDP (2)C/S (3)多线程编程 摘要:设计简单的客户/服务器,服务器实现并发同时响应客户的UDP通信要求,也能响应客户端发过来的TCP通信要求。 TCP客户: (1)客户创建流套接字,向服务器发起TCP连接。 (2)连接创建成功后,通过套接字向服务器持续发送或是接收数据。 (3)输入或是收到命令”end”,结束收发数据,并断开与服务器的连接。 UDP客户: (1)客户创建数据报套接字,通过该套接字向服务器发出”time”命令获取服务器系统时间。 (2)接收服务器返回的时间,更新客户系统时间。 (3)断开与服务器的连接。 服务器: 针对TCP客户,提供的服务如下: (1)服务器创建监听套接字,监听客户TCP连接请求。 (2)当收到一个客户TCP连接请求,创建连接套接字同意与其创建连接。 (3)通过套接字与客户持续发送或是接收数据。 (4)输入或是收到”end“命令,结束与该客户的收发数据,断开连接。 针对UDP客户,提供的服务如下: (1)服务器创建数据报套接字,等待接收客户数据。 (2)接收客户发来的“time”命令,获取系统时间,通过套接字返回给客户。 实验4 Web服务器 要求:(1)TCP (2)C/S (3)http 摘要:设计一个简单的web服务器,它仅能处理一个请求。 具体: Web服务器:

TCPIP详解学习笔记,非常全

TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到了一起。 但是简单的连到一起是远远不够的,就好像语言不同的两个人互相见了面,完全不能交流信息。因而他们需要定义一些共通的东西来进行交流,TCP/IP 就是为此而生。TCP/IP不是一个协议,而是一个协议族的统称。里面包括了IP协议,IMCP协议,TCP协议,以及我们更加熟悉的http、ftp、pop3协议等等。电脑有了这些,就好像学会了外语一样,就可以和其他的计算机终端做自由的交流了。TCP/IP协议分层 提到协议分层,我们很容易联想到ISO-OSI的七层协议经典架构,但是TCP/IP协议族的结构则稍有不同。如图所示 TCP/IP协议族按照层次由上到下,层层包装。最上面的就是应用层了,这里面有http,ftp,等等我们熟悉的协议。而第二层则是传输层,著名的TCP和UDP协议就在这个层次(不要告诉我你没用过udp玩星际)。第三层是网络层,IP协议就在这里,它负责对数据加上IP地址和其他的数据(后面会讲到)以确定传输的目标。第四层是叫数据链路层,这个层次为待传送的数据加入一个以太网协议头,并进行CRC编码,为最后的数据传输做准备。再往下则是硬件层次了,负责网络的传输,这个层次的定义包括网线的制式,网卡的定义等等(这些我们就不用关心了,我们也不做网卡),所以有些书并不把这个层次放在tcp/ip协议族里面,因为它几乎和tcp/ip 协议的编写者没有任何的关系。发送协议的主机从上自下将数据按照协议封装,而接收数据的主机则按照协议从得到的数据包解开,最后拿到需要的数据。这种结构非常有栈的味道,所以某些文章也把tcp/ip协议族称为tcp/ip协议栈。 一些基本的常识 在学习协议之前,我们应该具备一些基本知识。 互联网地址(ip地址) 网络上每一个节点都必须有一个独立的Internet地址(也叫做IP地址)。现在,通常使用的IP地址是一个32bit的数字,也就是我们常说的IPv4 标准,这32bit的数字分成四组,也就是常见的255.255.255.255的样式。IPv4标准上,地址被分为五类,我们常用的是B 类地址。具体的分类请参考其他文档。需要注意的是IP地址是网络号+主机号的组合,这非常重要。 域名系统 域名系统是一个分布的数据库,它提供将主机名(就是网址啦)转换成IP地址的服务。 RFC RFC是什么?RFC就是tcp/ip协议的标准文档,在这里我们可以看到RFC那长长的定义列表,现在它一共有4000多个协议的定义,当然,我们所要学习的,也就是那么十几个协议而已。 端口号(port) 注意,这个号码是用在TCP,UDP上的一个逻辑号码,并不是一个硬件端口,我们平时说把某某端口封掉了,也只是在IP层次把带有这个号码的IP包给过滤掉了而已。 应用编程接口 现在常用的编程接口有socket和TLI。而前面的有时候也叫做“Berkeley socket”,可见Berkeley对于网络的发展有多大的贡献。TCP/IP详解学习笔记(2)-数据链路层 数据链路层有三个目的: ?为IP模块发送和接收IP数据报。 ?为ARP模块发送ARP请求和接收ARP应答。 ?为RARP发送RARP请求和接收RARP应答 ip大家都听说过。至于ARP和RARP,ARP叫做地址解析协议,是用IP地址换MAC地址的一种协议,而RARP则叫做逆地址

tcpip实验报告

网络协议分析实验 一、实验目的 通过使用协议分析软件,对通信系统的通信过程进行监控、分析,以了解通信协议的工作过程。 二、实验内容 利用协议分析软件(如:Wireshark)跟踪局域网报文(如条件允许也可跟踪多种局域网协议报文),实验内容如下: 将安装协议分析软件的PC接入以太网中,跟踪PC之间的报文,并存入文件以备重新查。 设置过滤器过滤网络报文以检测特定数据流。 利用协议分析软件的统计工具显示网络报文的各种统计信息。 三、实验步骤 1、在PC中安装协议分析软件(如:Wireshark)。具体安装过程详见附录:Wireshark用户指南。 2、启动Wireshark协议分析软件,选择抓包菜单项启动实时监视器,开始实时跟踪显示网络数据报文。可根据系统提示修改显示方式,详见附录:Wireshark用户指南。 3、调出跟踪存储的历史报文,选择有代表性的ETHERNET,IEEE802.3,IP,ICMP,TCP,UDP报文,对照有关协议逐个分析报文各字段的含义及内容。 EHERNET报文格式 IEEE802.3报文格式 IP报文格式

4、设置过滤器属性,如目的地址,源地址,协议类型等。如过滤不需要的网络报文,过滤器允许设置第二层,第三层或第四层的协议字段。 过滤器有两种工作方式: 1)捕获前过滤:协议分析软件用过滤器匹配网络上的数据报文,仅当匹配通过时才捕获报文。 2)捕获后过滤:协议分析软件捕获所有报文,但仅显示匹配符合过滤条件的报文。选择统计菜单项可以显示网络中各种流量的统计信息,如:关于字节数,广播中报文数,出错数等。

UDP 客户/服务器实验 一、实验目的 本实验目的是使用因特网提供的UDP 传输协议,实现一个简单的UDP 客户/服务器程序,以了解传输层所提供的UDP 服务的特点,应用层和传输层之间的软件接口风格,熟悉socket 机制和UDP 客户端/服务器方式程序的结构。 二、实验内容 本实验为UDP 客户/服务器实验。实验内容:UDP echo 客户/服务器程序的设计与实现。UDP echo 客户/服务器程序完成以下功能: 客户从标准输入读一行文本,写到服务器上;服务器从网络输入读取此行,并回射(echo )给客户;客户读此回射行,并将其写到标准输出。 三、实验步骤 1、 总体设计 客户程序从标准输入读一行文本,写到服务器程序上;服务器程序从网络输入读取此行,并回射给客户程序;客户程序读此回射行,并将其写到标准输出。 2、 详细设计 U D P 客户-服务器程序所用套接口函数 1)服务器main 函数 2)服务器str_echo 函数

实验一TCPIP配置与测试

实验一TCP/IP配置与测试 一、实验目的及任务 1、熟悉并掌握TCP/IP的基本配置。 2、掌握TCP/IP的基本测试方法。 二、实验环境 与因特网连接的计算机局域网; 主机操作系统为windows 2000; 三、预备知识 从某种程度上说,Internet/Intranet与传统网络的主要区别在于它采用了TCP/IP协议,TCP/IP通信协议是目前最完整的、被普遍接受的通信协议标准。它可以使不同的硬件结构、不同软件操作系统的计算机之间相互通信。TCP/IP 是一个广泛发布的公开标准,完全独立于任何硬件或软件厂商,可以运行在不同体系的计算机上。它采用通用寻址方案,一个系统可以寻址到任何其他系统,即使在Internet这样庞大的全球网络内,寻址也是游刃有余。 主流的操作系统都支持TCP/IP协议。微软公司的操作系统平台对TCP/IP提供了强有力的支持,其安装和配置管理都是基于图形化窗口的,只要对TCP/IP 基本知识有所了解,即使是初学者按照提示也能够很轻易地进行基本的安装配置。 TCP/IP配置完毕后,即可利用测试工具进行测试。Windows提供了许多测试工具软件,常用的有: .Ping ,检测网络是否连通。 .Ipconfig ,显示目前TCP/IP的配置。 .Netstat ,显示目前TCP/IP网络连接与每一种协议的统计数据。 .Route ,显示路由配置信息。 .Tracert ,根踪由本机将数据包传送到目的主机所经的路由器及时间。 四、实验步骤 1、在Windows2000 Server中配置TCP/IP。

(1)选择[开始]>[设置]>[控制面板]>[网络和拨号连接],打开网络和拨号连接对话框。 (2)选择[本地连接],单击鼠标右键,从弹出的快捷菜单中选择[属性]、从组件列表中选择[1nternet协议(TCP/IP)] ,单击[属性]按钮打开如图 1.1所示的对话框。 图1.1 [Internet协议(TCP/IP)属性]对话框 (3)选择1P地址分配方式,这里有两种情况: ●如果要通过动态分配的方式获取IP地址,请选择[自动获得IP地址选 项] 。这样计算机启动时自动向DHCP服务器申请IP地址,除了获取 IP地址外,还能获得子网掩码、默认网关、DNS服务器等信息,自动 完成TCP/IP协议配置。对于服务器一般不让DHCP服务器指派地址, 而应设置固定的IP地址。 ●如果要分配一个静态地址,请选择[使用下面的IP地址]选项,接着在 下面的区域输入指定的IP地址、子网掩码以及默认的网关地址,必须 为不同的计算机设置不同的IP地址,同一网段内的子网掩码必须相同。(4)选择DNS服务器地址分配方式,一般要使用DNS域名服务,如果要通过动态分配的方式获取IP地址,请选择[自动获得DNS服务器地址]选 项:如果要分配一个静态地址,请选择[使用下面的DNS服务器地址] 选项,接着在下面的区域输入指定的首选DNS服务器地址和备用DNS

TCPIP实验报告

TCP/IP技术实验报告 书 专业:[通信工程] 学生姓名:[张世超] 完成时间:9:28 AM

实验一网络应用程序基础 实验目得: 通过实验,使学生熟悉并掌握运用TCP/IP技术进行网络编程得基本知识,加深对课堂教学内容得理解,掌握套接字网络通信编程技术,能够运用VC++为开发工具编程解决网络通信中得实际问题,进行一些简单得网络应用程序设计。实验内容: 1,Winsock得启动与终止。 2,Winsock得创建及绑定与关闭。 3,建立通信连接listen及accept与connect。 4,数据得传输。 5,简单得客户机/服务器之间得通信。 要求:通过在SDK模式下完成数据通信得过程,掌握Windows Socket得常用函数得形式与使用方法,理解数据通信得过程。 实验步骤: 1,打开VC环境 1,使用向导为客户端创建工程:选择可执行程序,选择使用wsa环境,单文档环境,其她得选择默认设置 2,在文件中添加代码 3,编译调试 4,使用向导为服务器端创建工程:选择可执行程序,选择使用wsa环境,单文档环境,其她得选择默认设置 5,在文件中添加代码 6,编译调试 7,分别打开两个系统命令窗口中,并分别在其中运行客户端与服务器端程序。 8,在客户端侧输入字符,可以瞧到服务器收到字符串 参考代码:课本156页--160页 实验结果: Client: #include<Winsock2、h> #include<stdio、h> //服务器端口号为5050 #define DEFAULT_PORT 5050 #define DATA_BUFFER 1024 void main(int argc,char *argv[]) { ?WSADATA wsaData; SOCKET sClient; ?int iPort=DEFAULT_PORT;

TCP和UDP协议简介

TCP和UDP协议简介 从专业的角度说,TCP的可靠保证,是它的三次握手机制,这一机制保证校验了数据,保证了他的可靠性。而UDP就没有了,所以不可靠。不过UDP的速度是TCP比不了的,而且UDP的反应速度更快,QQ就是用UDP协议传输的,HTTP是用TCP协议传输的,不用我说什么,自己体验一下就能发现区别了。再有就是UDP和TCP的目的端口不一样(这句话好象是多余的),而且两个协议不在同一层,TCP在三层,UDP不是在四层就是七层。TCP/IP协议介绍 TCP/IP的通讯协议 这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP 协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。 TCP/IP整体构架概述 TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line 等)来传送数据。 TCP/IP中的协议 以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的: 1.IP 网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。 IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的

实验1TCPIP属性设置(参考答案)

实验一TCP/IP属性设置与测试 【一】实验目的 1. 通过实验学习局域网接入Internet时的TCP/IP属性的设置; 2. 掌握ping、ipconfig等命令的使用; 3. 熟悉使用相关命令测试和验证TCP/IP配置的正确性及网络的连通性。 【二】实验要求 1. 设备要求:计算机2台以上(装有Windows 2000/XP/2003操作系统、装有网卡已联网); 2. 分组要求:2人一组,合作完成。 【三】实验预备知识 1. IP地址、子网掩码、默认网关、DNS服务器 (1)IP地址 IP地址(IP Address)就是给每个连接在Internet上的主机分配的一个32bit二进制地址,为了方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节,IP地址它就像一个人可以合法的在社会上办理银行卡、移动电话等社会活动所需要一个身份证号标识一样。 所有的IP地址都由国际组织NIC(Network Information Center)负责统一分配,目前全世界共有三个这样的网络信息中心:InterNIC(负责美国及其他地区)、ENIC(负责欧洲地区)、APNIC(负责亚太地区),我国申请IP地址要通过APNIC,APNIC的总部设在澳大利亚布里斯班。申请时要考虑申请哪一类的IP地址,然后向国内的代理机构提出。 (2)子网掩码 子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。 (3)默认网关 默认网关(Default Gateway)是一个可直接到达的IP 路由器的IP 地址,配置默认网关可以在IP 路由表中创建一个默认路径,一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包,它就好像一所学校有一个大门,我们进出学校必须经过这个大门,这个大门就是我们出入的默认关口。现在主机使用的网关,一般指的是默认网关。一台主机的默认网关是不可以随随便便指定的,必须正确地指定,否则一台主机就会将数据包发给不是网关的主机,从而无法与其他网络的主机通信。 (4)DNS服务器 DNS服务器(Domain Name System或者Domain Name Service) 是域名系统或者域名服务,域名系统为Internet上的主机分配域名地址和IP地址。用户使用域名地址,该系统就会自动把域名地址转为IP地址。域名服务是运行域名系统的Internet工具。执行域名服务的服务器称之为DNS服务器,通过DNS服务器来应答域名服务的查询。TCP/IP属性设置中填入的是DNS服务器的IP地址。 2. Ping命令 Ping命令是最常用的一种网络命令,用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。根据返回的信息,可以推断TCP/IP参数是否设置正确以及运行是否正常。按照缺省设置,Windows上运行的Ping命令发送4个ICMP(互联网控制报文协议)回送请求,每个32字节数据,

tcpip详解卷阅读笔记(4)TCP

https://www.360docs.net/doc/f415434995.html,/net/201201/116442.html 最后终于来到了大块头TCP协议,为了给应用层提供可靠的传输服务,tcp协议设计了各种机制以实现丢包、重发、乱序、链路传输错误等传输过程中可能出现的错误。 1. TCP协议概述 我们首先来看一下TCP协议的首部,它将给收发两端提供怎样的信息: 与UDP一样,TCP报头的前8个字节也是源和目的端的端口号。<源ip地址,源端口号,目的ip地址,目的端口号>(即一个socket pair)确定一条tcp连接。 序列号用来标识从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段中的第一个数据字节。反过来,确认序列号是表示TCP发端期望从TCP收端收到的下一个字节(好像说得不是很清楚,后面再说)。 首部长度给出首部中32bit字的数目,跟IP首部一样,TCP最多有60字节的首部。 接下来是6个标志比特,它们中的多个可以被同时设置为1: URG:紧急指针有效,与后面的紧急指针结合起来 ACK:确认序号有效 PSH:接收方尽快将这个报文段交给应用层 RST:重建连接 SYN:同步序号用来发起一个连接 FIN:发端完成发送任务,将要关闭连接

检验和的计算方法和UDP中的检验和一样,也要加上伪首部,也要填充奇数字节,与UDP不同的是,TCP强制要求计算检验和,而UDP的检验和是可选的。 窗口大小表明接收端当前的接收能力,以字节为单位,16位窗口限制了最大值为65535字节,在选项字段中,有一个窗口刻度选项,允许这个值按比例放大。 紧急指针是一个正的偏移量,和序号中的值相加表示紧急指针最后一个字节的序号。 选项字段可以包括最长报文大小(MSS),这是最常见的可选字段。每个连接方通常都在通信的第一个报文段中指明这个选项,表明本端所能接收的最大长度的报文段;还有上面我们提到的窗口扩大选项以及时间戳选项,我们将在后面看到时间戳选项的作用。 这里摘录一段话来描述TCP协议:“TCP可以表述为一个没有选择确认或否认的滑动窗口协议。我们说TCP缺少选择确认是因为TCP首部中的确认序列号表示发方已经成功收到字节,但还不包含确认序号所指的字节。当前还无法对数据流中选定的部分进行确认。例如,如果1~1024字节已经成功收到,下一个报文段中包含序号从2049~3072的字节,收端并不能确认这个新的报文段。它所能做的就是发回一个确认序号为1025的ACK。它也无法对一个报文进行否认。例如,如果收到包含1025~2048字节的报文段,但它的检验和错,TCP收端所能做的就是发回一个确认序号为1025的ACK。”这段话也好很地解释了前面提到的确认序列号的问题。 2. 连接的建立与终止 接下来就是著名的tcp建立连接的三次握手了。用时间序列图来表示最清楚不过了:

TCP.IP课程实验报告

TCP/IP协议族分析 课程设计

目录 第一章TCP/IP 概述 (3) 1.1 TCP/IP协议族定义 (3) 1.2 TCP/IP协议族的特点 (3) 1.3 TCP/IP协议族的分层 (3) 1.4 TCP/IP协议族的结构 (4) 第二章地址解析协议(ARP)——链路层 (5) 2.1 ARP概述 (6) 2.2 ARP的组成 (6) 2.3 ARP工作原理 (7) 2.4 ARP帧结构 (7) 第三章因特网控制消息协议(ICMP)——网络层 (13) 3.1 ICMP协议简介 (13) 3.2 ICMP消息结构 (14) 3.3 Echo Request和Echo Reply查询消息 (14) 3.4 ICMP各字段分析 (15) 第四章传输控制协议(TCP)——运输层 (18) 4.1 TCP协议简介 (18) 4.2 TCP数据包结构 (19) 4.3 TCP数据包分析 (20) 4.4 TCP三次“握手” (25) 第五章普通文件传输协议(TFTP)——应用层 (27) 5.1 TFTP数据传输模式 (27) 5.2 TFTP会话实例 (28) 总结 (31) 参考文献 (31)

第一章 TCP/IP 协议族概述 1.1 TCP/IP协议族定义 TCP/IP协议族是指一整套数据通信协议, 其名字是由这些协议中的两个协议组成的,即传输控制协议(Transmission Control Protocol ——TCP)和网间协议(Internet Protocol——IP)。虽然还有很多其他协议,但是TCP和IP显然是两个最重要的协议。 1.2 TCP/IP协议族的特点 TCP/IP协议族有一些重要的特点,以确保在特定的时刻能满足一种重要的需求,即世界范围内的数据通信。其特点包括: ●开放式协议标准。可免费使用,且与具体的计算机硬件或操作系统无关。由于它受到如此广泛的支持,因而即使不通过Internet 通信,利用TCP/IP来统一不同的硬件和软件也是很理想的。 ●与物理网络硬件无关。这就允许TCP/IP可以将很多不同类型的网络集成在一起,它可以适用于以太网、令牌环网、拨号线、X.25网络以及任何其它类型的物理传输介质。 ●通用的寻址方案。该方案允许任何TCP/IP设备唯一的寻址整个网络中的任何其他设备,该网络甚至可以像全球Internet那样大。 ●各种标准化的高级协议。可广泛而持续地提供多种用户服务。 1.3 TCP/IP协议族的分层 图1-1 TCP/IP协议族中不同层次的协议

TCP实验报告 计算机网络

计算机网络实验报告——TCP客户/服务器应用程序设计 姓名: 班级:

一.实验目的 实现在TCP方式下客户端和服务器端的数据传输过程。 二.实验要求 编程实现一个聊天室系统。该系统首先必须设立服务器,建立完成后必须建立与服务器的连接。建立成功后可以接收客户端输入的信息。该系统包括客户端和服务器端两部分。用户通过客户端发送消息。服务器端在收到消息后,显示在主界面上 实验报告要求有实现过程的流程图,对主要的函数及其参数给予说明,要有实现过程的主要程序段,并对各段程序的功能及作用进行说明。 三.程序实验原理及流程图 在TCP/IP协议下,通讯是建立在服务器与客户端之间的。由客户端想服务器发送连接请求,服务器响应后建立连接,然后才能开始进行通讯。一下是实现的流程图。 系统工作流程:

四.节目设计 在VC++的MFC下创建基于对话框模式的TCP服务器端和TCP客户端,设置控件并调整相应的属性。下面是初始化的效果:

五.主要函数及其参数说明 1、服务器端 1)BOOL CCSocketDlg::OnInitDialog() 用于初始化对话框。在这个这个系统自动生成的函数中添加对进程的控制。 count=0; m_list.InsertColumn(0,"消息");

m_list.SetColumnWidth(0,435); m_edit.SetLimitText(99); for (int i=0;i<50;i++) msgsock[i]=NULL; //设定地址 serv.sin_addr.s_addr=htonl(INADDR_ANY); serv.sin_family=AF_INET; serv.sin_port=5000;//htons(5000); addlen=sizeof(serv); m_button.EnableWindow(FALSE); //创建socket sock=socket(AF_INET,SOCK_STREAM,0); //绑定 if (bind(sock,(sockaddr*)&serv,addlen)){ m_edit.SetWindowText("绑定错误"); } else{ //m_list.InsertItem(count++,inet_ntoa(serv.sin_addr)); m_edit.SetWindowText("服务器创建成功"); //开始侦听 listen(sock,5); //调用线程 AfxBeginThread(&thread,0); 2)getcount() 用于获得还没有使用的socket数组号int CCSocketDlg::getcount(){ for (int i=0;i<50;i++){ if (msgsock[i]==NULL) return i;} return -1;

TCPIP实验之IP数据包分析--

TCP/IP协议与编程实验 姓名: 班级: 学号: 实验题目用Wireshark抓包分析ip数据包 一、实验目的 1、了解并会初步使用Wireshark,能在所用电脑上进行抓包 2、了解IP数据包格式,能应用该软件分析数据包格式 3、查看一个抓到的包的内容,并分析对应的IP数据包格式 二、实验内容 Wireshark 是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。 实验步骤: 1、打开wireshark,选择接口选项列表。或单击“Capture”,配置“option” 选项。

2、设置完成后,点击“start”开始抓包: 3、显示结果: 3、选择某一行抓包结果,双击查看此数据包具体结构。

4、捕捉IP数据报。 ① 写出IP数据报的格式。 IP数据报首部的固定部分中的各字段含义如下: (1)版本占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。 (2)首部长度占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。首部长度限制为60 字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部

3)区分服务占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务 DS(Differentiated Services)。只有在使用区分服务时,这个字段才起作用。 (4)总长度总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。长度就是20字节(即首部长度为0101),这时不使用任何选项。 (5)标识(identification) 占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。 (6)标志(flag) 占3位,但目前只有2位有意义。 标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。 标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0时才允许分片。 7)片偏移占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8 个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。 (8)生存时间占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初的设计是以秒作为TTL的单位。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。 #TTL通常是32或者64,scapy中默认是64 (9)协议占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。(在scapy中,下层的这个protocol一般可以从上曾继承而来,自动填充,我们一般可以省略不填此项) (10)首部检验和占16位。这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和

TCP协议实验报告

学生实验报告 姓名:_________ 学号:____________ 班级:________________ 指导老师:_______________ 内容摘要 该实验报告了TCP协议分析实验相关分析; TCP协议分析是通过Wireshark分析TCP协议的报文格式,如理解TCP报文段首部各字段的含义,理解TCP建立连接的三次握手机制,了解TCP的确认机制,了解TCP的流量控制和拥塞控制 实验目的 1. 通过协议分析软件掌握TCP协议的报文格式; 2. 理解TCP报文段首部各字段的含义; 3. 理解TCP建立连接的三次握手机制; 4. 了解TCP的确认机制,了解TCP的流量控制和拥塞控制; 实验原理 连上in ternet的PC机,并且安装有协议分析软件Wireshark 实验原理及概况 TCP是因特网中最主要的运输层协议,它能够在两个应用程序章提供可靠的、有序的数据流传输,能够检测传输过程中分组是否丢失、失序和改变,并利用重传机制保证分组可 靠地传输到接收方; TCP首部格式如下图所示: 位U 3 16 24 31 首先是源端口和目的端口,服务器提供服务的端口号是固定的,比如:Web服务端口 号是80,而客户端的端口号是由操作系统随机分配一个用户端口号。TCP提供字节流服务, 它为分组中的每个字节编号,首部中的序号表示分组中第一个字节的编号。接收方用确认号 表示它期望接收的数据流中下一个字节编号,表明确认号之前的字节接收方都已经正确接收 了。数据偏移字段表示报文段的首部长度。标志部分包含6个标志位,ACK位表明确认号 字段是否有效;PUSH位表示发送端应用程序要求数据立即发送;SYN、FIN、RESET三位 用来建立连接和关闭连接;URG和紧急指针通常较少使用。接收端利用窗口字段通知发送 方它能够接收多大数据量。检验和字段是接收方用来检验接收的报文是否在传输过程中出

TCPIP协议分析实验报告

.. TCP/IP协议分析及应用实验报告 学号:姓名:班级: 实验项目编号: B03862704 实验项目名称:传输控制协议TCP 一、实验目的: 1. 掌握TCP协议的报文格式。 2. 掌握TCP连接的建立和释放过程。 3. 掌握TCP数据传输中编号与确认的过程。 4. 掌握TCP协议校验和的计算方法。 5. 理解TCP重传机制。 二、实验环境: Windows server 2003 TCP/IP协议分析及应用教学实验平台 三、实验原理(或要求): TCP报文格式 16位源端口号 16位目的端口号 位序号32 位确认序号32F P U A R S 4位首6保留(16I 位窗口大小 C 部长R S S Y 位)N N T G K H 度位紧急指针16位校验和16 选项数据 连接的建立TCP在面向连接的环境中,开始传输数据之前,在两个终 TCP是面 向连接的协议。通信双方必须用彼此的初端之间必须先建立一个连接。对于一个 要建立的连接,(指明希望收到的下一个ackseq始化序列号和来自对方成功传输 确认的应答号。ACK,应答信号写为八位组的编号)来同步,习惯上将同步信 号写为SYN整个同步的过程称为三次握手,如图: 优质范文.

连接的释放TCP附加标记的报FINTCP使用四次握手来结束通话(使用一个带有对于一个已经建立的连接,如图。文段) TCP重传机制只要计时器设置的重传时间到期,就对这个报文段设置一次计时器。TCP每发送一个报文段,但还没有收到确认,就要重传这一报文段。

优质范文. .. 四、实验步骤: 练习一:察看TCP连接的建立和释放 主机B、C、D启动协议分析器进行数据捕获,并设置过滤条件(提取TCP协议)。主机A启动仿真编辑器,进入TCP连接视图。在“服务器信息/IP地址”中填入主机C的IP地址;使用“端口扫描”获取主机C的TCP端口列表,在“服务器信息/端口”中填入主机C的一个TCP端口(大于1024);点击“连接”按钮进行连接。 察看主机B、C、D捕获的数据,填写下表。 字段名称报文1 报文2 报文3 Sequence Number Acknowledgement Number ACK SYN TCP连接建立时,前两个报文的首部都有一个“maximum segment size”字段,它的值是多少?作用是什么?结合IEEE802.3协议规定的以太网最大帧长度分析此数据是怎样得出的。 主机A断开与主机C的TCP连接。 察看主机B、C、D捕获的数据,填写下表。

TCPIP原理实验一

实验一链路层帧格式分析实验 1、实验目的 1)熟悉Packet Tracer和Wireshark的用法。 2)掌握EthernetV2 标准规定的MAC 帧结构,初步了解TCP/IP 的主要协议和协议的层次结构。 3)了解IEEE802.1Q 标准规定的帧结构。 2、实验设备和连接 实验设备和连接图如图1 所示,一台交换机连接了2 台PC 机,分别命名为PC1、PC2,交换机命名为Switch。 图1 Ethernet 链路层帧结构实验连接图 3、实验分组 每两人一小组,每小组各自独立完成实验。 4、实验步骤 步骤1:按照如图1 所示连接好设备,配置PC1 和PC2 的IP 地址; 步骤2:在:PC1 和PC2 上运行Wireshark 截获报文,为了只截获和实验内容有关的报文,将Wireshark 的Captrue Filter 设置为“No Broadcast and no Multicast ”; 步骤3:在: PC1 的“运行”对话框中输入命令“Ping 172.16.1.102”,单击“确定”按钮; 步骤4:停止截获报文:将结果保存为MAC-学号,并对截获的报文进行分析: 1)列出截获的报文中的协议类型,观察这些协议之间的关系。 ___________________________________________________________________________ _______________________________________________________________________________ _______________________________________________________________________________ _______________________________________________________________________________ 2)在网络课程学习中,EthernetV2 规定以太网的MAC 层的报文格式分为7 字节的前导符、1 字节的帧首定界、6 字节的目的 MAC 地址、6 字节的源 MAC 地址、2 字节的类型、46~1500 字节的数据字段和4 字节的帧尾校验字段。分析一个Ethernet V2 帧,查看这个帧由几部分组成,缺少了哪几部分?为什么? ___________________________________________________________________________ _______________________________________________________________________________

tcp,ip详解卷1,协议,下载

竭诚为您提供优质文档/双击可除tcp,ip详解卷1,协议,下载 篇一:tcp_ip协议详解 tcp/ip协议详解 这部分简要介绍一下tcp/ip的内部结构,为讨论与互联网有关的安全问题打下基础。tcp/ip协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如t1和x.25、以太网以及Rs-232串行接口)之上。确切地说,tcp/ip协议是一组包括tcp协议和ip协议,udp (userdatagramprotocol)协议、icmp (internetcontrolmessageprotocol)协议和其他一些协议的协议组。 tcp/ip整体构架概述 tcp/ip协议并不完全符合osi的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而tcp/ip通讯协议采用了4层的层级结构,每一层都呼叫它的

下一层所提供的网络来完成自己的需求。这4层分别为:应用层:应用程序间沟通的层,如简单电子邮件传输(smtp)、文件传输协议(Ftp)、网络远程访问协议(telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(tcp)、用户数据报协议(udp)等,tcp和udp给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(ip)。 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如ethernet、serialline等)来传送数据。 tcp/ip中的协议 以下简单介绍tcp/ip中的协议都具备什么样的功能,都是如何工作的: 1.ip 网际协议ip是tcp/ip的心脏,也是网络层中最重要的协议。 ip层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---tcp或udp层;相反,ip层也把从tcp或udp层接收来的数据包传

TCP协议实验报告

T C P协议实验报告 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

学生实验报告 姓名:学号:班级:指导老师: 内容摘要 该实验报告了TCP协议分析实验相关分析; TCP协议分析是通过Wireshark分析TCP协议的报文格式,如理解TCP报文段首部各字段的含义,理解TCP建立连接的三次握手机制,?了解TCP的确认机制,了解TCP的流量控制和拥塞控制 实验目的 1.通过协议分析软件掌握TCP协议的报文格式; 2.理解TCP报文段首部各字段的含义; 3.理解TCP建立连接的三次握手机制; 4.了解TCP的确认机制,了解TCP的流量控制和拥塞控制; 实验原理 连上internet的PC机,并且安装有协议分析软件Wireshark 实验原理及概况 TCP是因特网中最主要的运输层协议,它能够在两个应用程序章提供可靠的、有序的数据流传输,能够检测传输过程中分组是否丢失、失序和改变,并利用重传机制保证分组可靠地传输到接收方; TCP首部格式如下图所示:

首先是源端口和目的端口,服务器提供服务的端口号是固定的,比如:Web服务端口号是80,而客户端的端口号是由操作系统随机分配一个用户端口号。TCP提供字节流服务,它为分组中的每个字节编号,首部中的序号表示分组中第一个字节的编号。接收方用确认号表示它期望接收的数据流中下一个字节编号,表明确认号之前的字节接收方都已经正确接收了。数据偏移字段表示报文段的首部长度。标志部分包含6个标志位,ACK位表明确认号字段是否有效;PUSH位表示发送端应用程序要求数据立即发送;SYN、FIN、RESET三位用来建立连接和关闭连接;URG 和紧急指针通常较少使用。接收端利用窗口字段通知发送方它能够接收多大数据量。检验和字段是接收方用来检验接收的报文是否在传输过程中出错。 TCP重传机制:当发送方传输一个报文段的同时启动一个重传计时器,当该报文的确认到达时,这个计时器就会取消,如果这个计时器超时,那么数据将会被重传。TCP在重传之前,并不总是等待重传计时器超时,TCP也会把一系列重复确认的分组当作是数据丢失的先兆;

相关文档
最新文档