应用层:负责应用程序之间的共同。SMTP、FTP、Telnet、HTTP等。
常见的应用层对应端口号有
ssh服务器使用22号端口,
telnet服务器使用23号端口,
http服务器使用80号端口,
https服务器使用443号端口。
详见github:https://github.com/AIsnoa/http_server
1、ping命令
ping是个使用频率极高的实用程序,主要用于确定网络的连通性。这对确定网络是否正确连接,以及网络连接的状况十分有用。简单的说,ping就是一个测试程序,如果ping运行正确,大体上就可以排除网络访问层、网卡、Modem的输入输出线路、电缆和路由器等存在的故障,从而缩小问题的范围。
ping能够以毫秒为单位显示发送请求到返回应答之间的时间量。如果应答时间短,表示数据报不必通过太多的路由器或网络,连接速度比较快。ping还能显示TTL(Time To Live,生存时间)值,通过TTL值可以推算数据包通过了多少个路由器。
(1) 命令格式
ping 主机名 、域名 、IP地址
ping命令的常用参数选项
ping IP -t:连续对IP地址执行ping命令,直到被用户以Ctrl C中断。
ping IP -l 2000:指定ping命令中的特定数据长度(此处为2000字节),而不是缺省的32字节。
ping IP -n 20:执行特定次数(此处是20)的ping命令。
2、ipconfig命令
ipconfig实用程序可用于显示当前的TCP/IP配置的设置值。这些信息一般用来检验人工配置的TCP/IP设置是否正确。
3、arp命令(地址转换协议)
ARP是TCP/IP协议族中的一个重要协议,用于确定对应IP地址的网卡物理地址。
使用arp命令,能够查看本地计算机或另一台计算机的ARP高速缓存中的当前内容。此外,使用arp命令可以人工方式设置静态的网卡物理地址/IP地址对,使用这种方式可以为缺省网关和本地服务器等常用主机进行本地静态配置,这有助于减少网络上的信息量。
按照缺省设置,ARP高速缓存中的项目是动态的,每当向指定地点发送数据并且此时高速缓存中不存在当前项目时,ARP便会自动添加该项目。
常用命令选项:
① arp –a:用于查看高速缓存中的所有项目。
② arp -a IP:如果有多个网卡,那么使用arp -a加上接口的IP地址,就可以只显示与该接口相关的ARP缓存项目。
③ arp -s IP 物理地址:向ARP高速缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态,或者在出现错误时,人工配置的物理地址将自动更新该项目。
④ arp -d IP:使用本命令能够人工删除一个静态项目。
4、traceroute命令
掌握使用traceroute命令测量路由情况的技能,即用来显示数据包到达目的主机所经过的路径。
traceroute命令的基本用法是,在命令提示符后键入“tracert host_name”或“tracert ip_address”,其中,tracert是traceroute在Windows操作系统上的称呼。
输出有5列:
第一列是描述路径的第n跳的数值,即沿着该路径的路由器序号;
第二列是第一次往返时延;
第三列是第二次往返时延;
第四列是第三次往返时延;
第五列是路由器的名字及其输入端口的IP地址。
如果源从任何给定的路由器接收到的报文少于3条(由于网络中的分组丢失),traceroute在该路由器号码后面放一个星号,并报告到达那台路由器的少于3次的往返时间。
此外,tracert命令还可以用来查看网络在连接站点时经过的步骤或采取哪种路线,如果是网络出现故障,就可以通过这条命令查看出现问题的位置。
思考【测试大型网络的路由】:
(1)多尝试几次“ping www.sina.com.cn”操作,比较得到的新浪网的IP地址。如果两次ping得到的IP地址不同,试考虑其中的原因(如考虑到负载均衡)。然后,针对这些不同的IP地址,执行“tracert ip_address”命令,观察分析输出的结果是否有差异。
(2)对于大型网络中的某站点进行traceroute测试,记录测试结果。观察其中是否出现第n跳的时延小于第n-1跳的时延情况。试分析其中原因(提示:可分别考虑时延的各个构成成分在总时延中所起的作用)。
(3)在一天的不同时段内,用traceroute程序多次测试从固定主机到远程固定IP地址的主机的路由。试分析比较测量数据,观察该路由是否有变化?如果有变化,该变化频繁吗?
5、nslookup命令
命令nslookup的功能是查询任何一台机器的IP地址和其对应的域名。它通常需要一台域名服务器来提供域名。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名。
(1)在本地机上使用nslookup命令查看本机的IP及域名服务器地址。
直接键入命令,系统返回本机的服务器名称(带域名的全称)和IP地址,并进入以“>”为提示符的操作命令行状态;键入“?”可查询详细命令参数;若要退出,需键入exit。
(2)查看www.haut.edu.cn的IP。在提示符后输入要查询的IP地址或域名并回车即可。
6、nbtstat命令
使用nbtstat命令可以查看计算机上网络配置的一些信息。使用这条命令还可以查找出别人计算机上一些私人信息。如果想查看自己计算机上的网络信息,可以运行nbtstat -n,可以得到你所在的工作组,计算机名以及网卡地址等等;想查看网络上其他的电脑情况,就,运行nbtstat -a ...,此处的...用IP地址代替就会返回得到那台主机上的一些信息。
7、netstat命令
学习使用netstat命令,以了解网络当前的状态。
netstat命令能够显示活动的TCP连接、计算机侦听的端口、以太网统计信息、IP路由表、IPv4统计信息(对于IP、ICMP、TCP和UDP协议)以及IPv6统计信息(对于IPv6、ICMPv6、通过IPv6的TCP以及UDP协议)。使用时如果不带参数,netstat显示活动的TCP连接。
下面给出netstat的一些常用选项:
① netstat –a:-a选项显示所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接。
② netstat –n:以点分十进制的形式列出IP地址,而不是象征性的主机名和网络名。
③ netstat -e:-e选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据包的总字节数、错误数、删除数、数据包的数量和广播的数量。这些统计数据既有发送的数据包数量,也有接收的数据包数量。使用这个选项可以统计一些基本的网络流量。
④ netstat -r:-r选项可以显示关于路由表的信息,类似于route print命令时看到的信息。除了显示有效路由外,还显示当前有效的连接。
上图显示的是一个路由表,其中:Network Destination表示目的网络,0.0.0.0表示不明网络,这是设置默认网关后系统自动产生的;127.0.0.0表示本机网络地址,用于测试;224.0.0.0表示组播地址;255.255.255.255表示限制广播地址;Netmask表示网络掩码,Gateway表示网关,Interface表示接口地址,Metric表示路由跳数。
⑤ netstat -s:-s选项能够按照各个协议分别显示其统计数据。这样就可以看到当前计算机在网络上存在哪些连接,以及数据包发送和接收的详细情况等等。如果应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么可以用本选项来查看一下所显示的信息。仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。
面向字节流
粘包问题
深度阅读本文档,理解各层作用,理解各层常见协议
编程实现基本的http服务器代码
总结常见应用层对应端口号(http(80) https(443))
总结网络常用命令,总结TIME_WAIT状态
总结TCP可靠性保证都有哪些机制,各自保证可靠性当中的那些方面
调研网络当中常见的攻击手法与原理
调研NAT技术与代理服务器的区别,调研常见的代理服务器都有哪些
调研tcpdump工具的使用方法与常见选项(重点如何抓取tcp,udp,http,arp,dns报文)