Computer Network Basic

基本概念

先要明白一个道理,学习网络的目的就是如何让网络中的计算机相互通讯,也就是说要围绕着”通”(通则不痛)这个字来学习和理解网络中的概念,而不是只为背几个名词。

TCP/IP五层协议

层级典型协议
应用层TELNET/FTP/SMTP/HTTP
传输层TCP/UDP
网络层IP
网络接口层
(数据链路层和物理层)

常用命令
traceroute/tracert(based on UDP and ICMP):取得从源地址到目标地址网络路径。might be intercepted by firewall
tcptraceroute
ping

各种网络设备

  • 交换机:三层交换机工作在网络层,二层交换机工作在链路层
  • 集线器
  • 路由器:工作在网络层

IP

网络层:网络层仅负责两台主机之间的通信。
一般内网的ip地址是以192.168开头的,这样很容易区分公网和内网的ip地址。
子网掩码:将IP地址和子网掩码都换算成二进制,然后进行与运算,结果就是网络地址。
网络分类:

  • A
  • B
  • C
  • D 多播用D类地址

网络号、主机号:全0与全1

TCP/ UDP

传输层协议:负责两台主机间进程间的通信。

对比项TCPUDP
连接性面向连接的无连接的
可靠性提供可靠交付尽最大努力交付
best effort delivery
传输单位报文段用户数据报

TCP字节流:send()写到发送缓冲区,发送,接收缓冲区接收,最后recv()读;UDP每次send()对应一段报文;
TCP一对一,而UDP适合广播;
TCP应用场景:对网络通讯质量有较高要求,比如HTTP、HTTPS、FTP等传输文件协议,POP、SMTP等邮件传输的协议。常见使用TCP协议的应用如下:浏览器,用的HTTP;FlashFXP,用的FTP;Outlook,用的POP、SMTP;Putty,用的Telnet、SSH;QQ文件传输。
UDP应用场景:当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。常见使用UDP协议的应用如下:QQ语音、QQ视频、TFTP。

TCP头部

tcp头部

tcp三次握手报文与状态
tcp三次握手报文与状态

tcp四次握手报文与状态
tcp四次握手报文与状态

三次握手与四次挥手图示
tcp三次握手与四次挥手

状态图示
三次握手与四次挥手状态

HTTP


http请求报文图示
http请求报文结构

HTTP状态码
重定向与转发的区别
长连接与短连接,长连接如何正确处理?

HTTPS

HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)

其他

输入网址www.baidu.com,这个过程所涉及到的协议及动作?
1. DNS域名解析(浏览器缓存、操作系统缓存、路由器、ISP的DNS服务器、根域名服务器),把域名转化成IP地址;
2. 与IP地址对应的服务器建立TCP连接(经历三次握手:SYN,ACK、SYN,ACK);
3. 以get,post方式发送HTTP请求,get方式发送主机,用户代理,connection属性,cookie等;
4. 服务器分析HTTP请求,生成HTTP响应(可能是HTML、图片等)后,将响应发送给客户端浏览器;
5. 浏览器获得服务器的响应,在分析HTML时,若发现引用了其他资源,例如css、图片等,则发起HTTP请求,得到响应资源。
ping访问www.baidu.com用到哪些协议?
1、直接ping网站的话,后面跟的是地址,所以要先将域名转换为ip地址,即用到了DNS;
2、获取到ip地址后,在数据链路层是根据MAC地址传输的,所以要用到ARP解析服务,获取到MAC地址;
3、ping功能是测试另一台主机是否可达,程序发送一份ICMP回显请求给目标主机,并等待返回ICMP回显应答,(ICMP主要是用于ip主机、路由器之间传递控制信息,控制信息是指网络通不通,主机是否可达);
4、TCP的话,不涉及数据传输,不会用到。

DNS解析的过程
1. 浏览器缓存,地址栏输入net-internals/#dns可查看;
2. OS缓存,cmd中输入ipconfig /displaydns可查看,ipconfig /flushdns可清除;
3. host文件;
4. DNS Server;
5. ……
6. ……
7. ……
8. ……后面四个用的很少

使用工具分析http报文和TCP报文

学习理论时结合实例分析报文结构非常有助于理解。一般分析http/https用fiddler,tcp/udp一般用wireshark。

wireShark用法:
http://blog.jobbole.com/70907/
http://blog.csdn.net/holandstone/article/details/47026213
http://blog.csdn.net/ningxuezhu/article/details/39892091/
查看报文经常要用到过滤规则来查看特定端口或IP的报文,参见:
wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容) 实例介绍
比如我这里只看两台机器之间的报文:
( ip.dst== 192.168.8.50 and ip.src== 192.168.8.59)
or( ip.dst== 192.168.8.59 and ip.src== 192.168.8.50)

通过wireshark分析tcp报文:
http://blog.csdn.net/fei003/article/details/69664887

注意:
1. windows下打开WireShark要以管理员身份运行, 否则可能无法识别网卡。
2. Wireshark默认匹配安装的是WinPcap,但是WinPcap不能抓取本地回环数据。NPcap是在WinPcap的基础上进行优化开发的,可以抓取本地数据,如果已安装WinPcap的请卸载,最好Wireshark一起卸载掉,重新安装,先安装NPcap,再安装Wireshark。

参考资料
https://www.zhihu.com/question/28943943?sort=created
http://www.imooc.com/article/17411

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值