2013年7月10日星期三
时延 High Performance Browser Networking
主要是时延相关的讨论,涉及tcp优化、http 2.0、websocket等等,还不错
2012年11月4日星期日
2012年9月29日星期六
2012 ArchSummit架构师峰会
如何简单、有效、快速的解决?
我认为是经验 + 持续不断的学习 + 交流。
非常感谢网络上乐于分享的同志们。
人人网网站架构变迁 条理分明,方案的选择,架构的变迁
移动互联网上的微视频处理与分发 不同应用场景的做法不同大众点评移动应用的架构演进 不同应用场景的做法不同深层网络搜索核心技术研讨 数据没那么好拿了,从垃圾里面翻金子,跟从金矿里面翻金子,效果差异自不必言多租户SaaS模式的OVP架构设计 不同应用场景的做法不同网络架构疑难杂症解析 看老外讲中国ISP环境,真是另有一番滋味
2011年7月4日星期一
mdns协议
mdns适合快速小型组网,例如adhoc,wifi
可以认为是一个节点,加入网络时,发组播跟别的节点说:我叫啥,ip是啥
此时,同一无线局域网下的wifi节点无需专门的中转路由节点,可相互通信
2010年12月6日星期一
Network : 路由查找算法笔记
路由查找 -> 报文转发速度 -> 路由器性能
路由查找算法的几个指标:
- 查找速度:软件实现,查找过程中需要访问存储器的次数;转发速度,线速转发;报文丢失
- 存储容量:存储空间小的算法可在cache或on-chip SRAM提高运行速度
- 路由波动更新速度:
-
- 静态算法:完全重构,预处理速度?
- 动态算法:在原有基础上做更新
- 实现的灵活性:软硬件均可实现
- 可扩展性:支持IPv6?
路由查找算法测试:
Internet地址前缀分布(IPMA项目提供Internet五大骨干路由器中路由表的实时统计数据)
目的地址序列
一些查找算法:
- hash链式表查找:表项少,查找快
- 动态前缀树查找:表项增多时,查找性能差不多,整体较慢
- RAM快速查找:查找很快,算法使用的存储空间较大,适用于高速骨干路由器,高速转发
牺牲更新速度,换更快的查找速度?
骨干网使用MPLS
区别服务、策略路由支持?
最长前缀匹配不同于完全匹配,许多适用于完全匹配的算法,例如散列表,不适于最长前缀匹配。
基于树?
基于硬件?
内容可寻址存储器CAM,给出内容->返回地址
缓存CACHE,给出数据地址->返回内容
CAM在一个时钟周期内完全查找,O(1)完成最长前缀查找。
增加用于存放路由表的RAM用量=>提高查找速度
针对大量前缀 >8,<24 -> 算法优化
2010年11月21日星期日
一些笔记
smurf 攻击:攻击源向一堆机器发源伪造的icmp包,导致一堆机器向受害机器回复ICMP包,最终受害机器挂掉。
ssl依赖于客户端信任服务器证书的程度,如果客户端信任一个伪造的证书,那么安全也无法保证。
setuid 临时提升普通用户权限
sticky bit : 用户对目录具有写权限时,能增加文件,不能删除文件
修改mac地址:ifconfig eth0 hw ether [MAC]
traceroute 中间有些跳是 ***,没有显示IP地址,原因是这些跳没有响应ICMP超时消息。如果从某一跳开始,后续所有跳都是***,有可能是带***的第一跳试图过滤返回该源IP的ICMP超时消息。
lsof -i 列出所有使用中的tcp/udp端口
tcpdump 参数:-nn 禁止协议查找;-c 捕获包数
交换机通过CAM(内容可寻址)存储器来保存和维护ARP缓存
arp 毒化:arp -s <受害者IP> <自身MAC> pub
混杂模式网卡: ifconfig 显示 PROMISC标识
2010年4月26日星期一
2010年2月27日星期六
GFW : 用ipv6地址访问Google、YouTube、Twitter
用ipv6地址访问会快很多。
archlinux安装配置:
# yaourt -S gw6c
临时启动:
# modprobe tun # gw6c
开机自启动:
在/etc/rc.conf的MODULES中加入tun,DAEMONS中加入gw6c
在/etc/hosts中添加以下内容:
#Twitter 2001:470:83f2::710:1 twitter.com 2001:470:83f2::710:1 www.twitter.com 2001:470:83f2::710:1 m.twitter.com 2001:470:83f2::710:1 search.twitter.com 2001:470:83f2::710:1 integratedsearch.twitter.com 2001:470:83f2::710:1 api.twitter.com 2001:470:83f2::710:1 s.twimg.com 2001:470:83f2::710:1 a0.twimg.com 2001:470:83f2::710:1 a1.twimg.com 2001:470:83f2::710:1 a2.twimg.com 2001:470:83f2::710:1 a3.twimg.com 2001:470:83f2::710:1 twitpic.com 2001:470:83f2::710:1 twitgoo.com #google 2001:4860:c004::68 pop.gmail.com 2001:4860:c004::68 smtp.gmail.com 2001:4860:c004::68 www.gmail.com 2001:4860:c004::68 mail.google.com 2001:4860:c004::68 www.gmail.com 2001:4860:c004::68 googlemail.l.google.com 2001:4860:c004::68 writely-china.l.google.com 2001:4860:c004::68 writely.l.google.com 2001:4860:c004::68 docs.google.com 2001:4860:c004::68 groups.google.com 2001:4860:c004::68 groups.l.google.com 2001:4860:c004::68 spreadsheet.google.com 2001:4860:c004::68 services.google.com 2001:4860:c004::68 writely.google.com 2001:4860:c004::68 sites.google.com 2001:4860:c004::68 reader.google.com 2001:4860:c004::68 calendar.google.com 2001:4860:c004::68 www.google.com 2001:4860:c004::68 images.google.com #google picasa 2001:4860:c004::62 photos.google.com 2001:4860:c004::62 picasa.google.com 2001:4860:c004::62 picasaweb.google.com 2001:4860:c004::68 lh0.ggpht.com 2001:4860:c004::68 lh1.ggpht.com 2001:4860:c004::68 lh2.ggpht.com 2001:4860:c004::68 lh3.ggpht.com 2001:4860:c004::68 lh4.ggpht.com 2001:4860:c004::68 lh5.ggpht.com 2001:4860:c004::68 lh6.ggpht.com 2001:4860:c004::68 lh7.ggpht.com 2001:4860:c004::68 lh8.ggpht.com 2001:4860:c004::68 lh9.ggpht.com #google blogger 2001:4860:c004::68 abbypan.blogspot.com 2001:4860:c004::68 www.blogger.com 2001:4860:c004::68 draft.blogger.com 2001:4860:c004::68 blogger.l.google.com 2001:4860:c004::68 blogger.google.com #youtube 216.234.179.13 googlevideo.com 2001:4860:c004::68 www.youtube.com 2001:4860:c004::68 gdata.youtube.com 2001:4860:c004::68 help.youtube.com 2001:4860:c004::68 upload.youtube.com 2001:4860:c004::68 insight.youtube.com 2001:4860:c004::68 img.youtube.com 2001:4860:c004::68 youtube.com 2001:4860:c004::68 apiblog.youtube.com 2001:4860:c004::68 clients1.youtube.com 2001:4860:4001:402::15 d.yimg.com 2001:4860:4001:402::15 s.ytimg.com 2001:4860:4001:402::15 i.ytimg.com 2001:4860:4001:402::15 i1.ytimg.com 2001:4860:4001:402::15 i2.ytimg.com 2001:4860:4001:402::15 i3.ytimg.com 2001:4860:4001:402::15 i4.ytimg.com 2001:4860:4001:402::10 v1.lscache1.c.youtube.com 2001:4860:4001:402::10 v1.lscache2.c.youtube.com 2001:4860:4001:402::10 v1.lscache3.c.youtube.com 2001:4860:4001:402::10 v1.lscache4.c.youtube.com 2001:4860:4001:402::10 v1.lscache5.c.youtube.com 2001:4860:4001:402::10 v1.lscache6.c.youtube.com 2001:4860:4001:402::10 v1.lscache7.c.youtube.com 2001:4860:4001:402::10 v1.lscache8.c.youtube.com 2001:4860:4001:402::10 v2.lscache1.c.youtube.com 2001:4860:4001:402::10 v2.lscache2.c.youtube.com 2001:4860:4001:402::10 v2.lscache3.c.youtube.com 2001:4860:4001:402::10 v2.lscache4.c.youtube.com 2001:4860:4001:402::10 v2.lscache5.c.youtube.com 2001:4860:4001:402::10 v2.lscache6.c.youtube.com 2001:4860:4001:402::10 v2.lscache7.c.youtube.com 2001:4860:4001:402::10 v2.lscache8.c.youtube.com 2001:4860:4001:402::10 v3.lscache1.c.youtube.com 2001:4860:4001:402::10 v3.lscache2.c.youtube.com 2001:4860:4001:402::10 v3.lscache3.c.youtube.com 2001:4860:4001:402::10 v3.lscache4.c.youtube.com 2001:4860:4001:402::10 v3.lscache5.c.youtube.com 2001:4860:4001:402::10 v3.lscache6.c.youtube.com 2001:4860:4001:402::10 v3.lscache7.c.youtube.com 2001:4860:4001:402::10 v3.lscache8.c.youtube.com 2001:4860:4001:402::10 v4.lscache1.c.youtube.com 2001:4860:4001:402::10 v4.lscache2.c.youtube.com 2001:4860:4001:402::10 v4.lscache3.c.youtube.com 2001:4860:4001:402::10 v4.lscache4.c.youtube.com 2001:4860:4001:402::10 v4.lscache5.c.youtube.com 2001:4860:4001:402::10 v4.lscache6.c.youtube.com 2001:4860:4001:402::10 v4.lscache7.c.youtube.com 2001:4860:4001:402::10 v4.lscache8.c.youtube.com 2001:4860:4001:402::10 v5.lscache1.c.youtube.com 2001:4860:4001:402::10 v5.lscache2.c.youtube.com 2001:4860:4001:402::10 v5.lscache3.c.youtube.com 2001:4860:4001:402::10 v5.lscache4.c.youtube.com 2001:4860:4001:402::10 v5.lscache5.c.youtube.com 2001:4860:4001:402::10 v5.lscache6.c.youtube.com 2001:4860:4001:402::10 v5.lscache7.c.youtube.com 2001:4860:4001:402::10 v5.lscache8.c.youtube.com 2001:4860:4001:402::10 v6.lscache1.c.youtube.com 2001:4860:4001:402::10 v6.lscache2.c.youtube.com 2001:4860:4001:402::10 v6.lscache3.c.youtube.com 2001:4860:4001:402::10 v6.lscache4.c.youtube.com 2001:4860:4001:402::10 v6.lscache5.c.youtube.com 2001:4860:4001:402::10 v6.lscache6.c.youtube.com 2001:4860:4001:402::10 v6.lscache7.c.youtube.com 2001:4860:4001:402::10 v6.lscache8.c.youtube.com 2001:4860:4001:402::10 v7.lscache1.c.youtube.com 2001:4860:4001:402::10 v7.lscache2.c.youtube.com 2001:4860:4001:402::10 v7.lscache3.c.youtube.com 2001:4860:4001:402::10 v7.lscache4.c.youtube.com 2001:4860:4001:402::10 v7.lscache5.c.youtube.com 2001:4860:4001:402::10 v7.lscache6.c.youtube.com 2001:4860:4001:402::10 v7.lscache7.c.youtube.com 2001:4860:4001:402::10 v7.lscache8.c.youtube.com 2001:4860:4001:402::10 v8.lscache1.c.youtube.com 2001:4860:4001:402::10 v8.lscache2.c.youtube.com 2001:4860:4001:402::10 v8.lscache3.c.youtube.com 2001:4860:4001:402::10 v8.lscache4.c.youtube.com 2001:4860:4001:402::10 v8.lscache5.c.youtube.com 2001:4860:4001:402::10 v8.lscache6.c.youtube.com 2001:4860:4001:402::10 v8.lscache7.c.youtube.com 2001:4860:4001:402::10 v8.lscache8.c.youtube.com 2001:4860:4001:402::10 v9.lscache1.c.youtube.com 2001:4860:4001:402::10 v9.lscache2.c.youtube.com 2001:4860:4001:402::10 v9.lscache3.c.youtube.com 2001:4860:4001:402::10 v9.lscache4.c.youtube.com 2001:4860:4001:402::10 v9.lscache5.c.youtube.com 2001:4860:4001:402::10 v9.lscache6.c.youtube.com 2001:4860:4001:402::10 v9.lscache7.c.youtube.com 2001:4860:4001:402::10 v9.lscache8.c.youtube.com 2001:4860:4001:402::10 v10.lscache1.c.youtube.com 2001:4860:4001:402::10 v10.lscache2.c.youtube.com 2001:4860:4001:402::10 v10.lscache3.c.youtube.com 2001:4860:4001:402::10 v10.lscache4.c.youtube.com 2001:4860:4001:402::10 v10.lscache5.c.youtube.com 2001:4860:4001:402::10 v10.lscache6.c.youtube.com 2001:4860:4001:402::10 v10.lscache7.c.youtube.com 2001:4860:4001:402::10 v10.lscache8.c.youtube.com 2001:4860:4001:402::10 v11.lscache1.c.youtube.com 2001:4860:4001:402::10 v11.lscache2.c.youtube.com 2001:4860:4001:402::10 v11.lscache3.c.youtube.com 2001:4860:4001:402::10 v11.lscache4.c.youtube.com 2001:4860:4001:402::10 v11.lscache5.c.youtube.com 2001:4860:4001:402::10 v11.lscache6.c.youtube.com 2001:4860:4001:402::10 v11.lscache7.c.youtube.com 2001:4860:4001:402::10 v11.lscache8.c.youtube.com 2001:4860:4001:402::10 v12.lscache1.c.youtube.com 2001:4860:4001:402::10 v12.lscache2.c.youtube.com 2001:4860:4001:402::10 v12.lscache3.c.youtube.com 2001:4860:4001:402::10 v12.lscache4.c.youtube.com 2001:4860:4001:402::10 v12.lscache5.c.youtube.com 2001:4860:4001:402::10 v12.lscache6.c.youtube.com 2001:4860:4001:402::10 v12.lscache7.c.youtube.com 2001:4860:4001:402::10 v12.lscache8.c.youtube.com 2001:4860:4001:402::10 v13.lscache1.c.youtube.com 2001:4860:4001:402::10 v13.lscache2.c.youtube.com 2001:4860:4001:402::10 v13.lscache3.c.youtube.com 2001:4860:4001:402::10 v13.lscache4.c.youtube.com 2001:4860:4001:402::10 v13.lscache5.c.youtube.com 2001:4860:4001:402::10 v13.lscache6.c.youtube.com 2001:4860:4001:402::10 v13.lscache7.c.youtube.com 2001:4860:4001:402::10 v13.lscache8.c.youtube.com 2001:4860:4001:402::10 v14.lscache1.c.youtube.com 2001:4860:4001:402::10 v14.lscache2.c.youtube.com 2001:4860:4001:402::10 v14.lscache3.c.youtube.com 2001:4860:4001:402::10 v14.lscache4.c.youtube.com 2001:4860:4001:402::10 v14.lscache5.c.youtube.com 2001:4860:4001:402::10 v14.lscache6.c.youtube.com 2001:4860:4001:402::10 v14.lscache7.c.youtube.com 2001:4860:4001:402::10 v14.lscache8.c.youtube.com 2001:4860:4001:402::10 v15.lscache1.c.youtube.com 2001:4860:4001:402::10 v15.lscache2.c.youtube.com 2001:4860:4001:402::10 v15.lscache3.c.youtube.com 2001:4860:4001:402::10 v15.lscache4.c.youtube.com 2001:4860:4001:402::10 v15.lscache5.c.youtube.com 2001:4860:4001:402::10 v15.lscache6.c.youtube.com 2001:4860:4001:402::10 v15.lscache7.c.youtube.com 2001:4860:4001:402::10 v15.lscache8.c.youtube.com 2001:4860:4001:402::10 v16.lscache1.c.youtube.com 2001:4860:4001:402::10 v16.lscache2.c.youtube.com 2001:4860:4001:402::10 v16.lscache3.c.youtube.com 2001:4860:4001:402::10 v16.lscache4.c.youtube.com 2001:4860:4001:402::10 v16.lscache5.c.youtube.com 2001:4860:4001:402::10 v16.lscache6.c.youtube.com 2001:4860:4001:402::10 v16.lscache7.c.youtube.com 2001:4860:4001:402::10 v16.lscache8.c.youtube.com 2001:4860:4001:402::10 v17.lscache1.c.youtube.com 2001:4860:4001:402::10 v17.lscache2.c.youtube.com 2001:4860:4001:402::10 v17.lscache3.c.youtube.com 2001:4860:4001:402::10 v17.lscache4.c.youtube.com 2001:4860:4001:402::10 v17.lscache5.c.youtube.com 2001:4860:4001:402::10 v17.lscache6.c.youtube.com 2001:4860:4001:402::10 v17.lscache7.c.youtube.com 2001:4860:4001:402::10 v17.lscache8.c.youtube.com 2001:4860:4001:402::10 v18.lscache1.c.youtube.com 2001:4860:4001:402::10 v18.lscache2.c.youtube.com 2001:4860:4001:402::10 v18.lscache3.c.youtube.com 2001:4860:4001:402::10 v18.lscache4.c.youtube.com 2001:4860:4001:402::10 v18.lscache5.c.youtube.com 2001:4860:4001:402::10 v18.lscache6.c.youtube.com 2001:4860:4001:402::10 v18.lscache7.c.youtube.com 2001:4860:4001:402::10 v18.lscache8.c.youtube.com 2001:4860:4001:402::10 v19.lscache1.c.youtube.com 2001:4860:4001:402::10 v19.lscache2.c.youtube.com 2001:4860:4001:402::10 v19.lscache3.c.youtube.com 2001:4860:4001:402::10 v19.lscache4.c.youtube.com 2001:4860:4001:402::10 v19.lscache5.c.youtube.com 2001:4860:4001:402::10 v19.lscache6.c.youtube.com 2001:4860:4001:402::10 v19.lscache7.c.youtube.com 2001:4860:4001:402::10 v19.lscache8.c.youtube.com 2001:4860:4001:402::10 v20.lscache1.c.youtube.com 2001:4860:4001:402::10 v20.lscache2.c.youtube.com 2001:4860:4001:402::10 v20.lscache3.c.youtube.com 2001:4860:4001:402::10 v20.lscache4.c.youtube.com 2001:4860:4001:402::10 v20.lscache5.c.youtube.com 2001:4860:4001:402::10 v20.lscache6.c.youtube.com 2001:4860:4001:402::10 v20.lscache7.c.youtube.com 2001:4860:4001:402::10 v20.lscache8.c.youtube.com 2001:4860:4001:402::10 v21.lscache1.c.youtube.com 2001:4860:4001:402::10 v21.lscache2.c.youtube.com 2001:4860:4001:402::10 v21.lscache3.c.youtube.com 2001:4860:4001:402::10 v21.lscache4.c.youtube.com 2001:4860:4001:402::10 v21.lscache5.c.youtube.com 2001:4860:4001:402::10 v21.lscache6.c.youtube.com 2001:4860:4001:402::10 v21.lscache7.c.youtube.com 2001:4860:4001:402::10 v21.lscache8.c.youtube.com 2001:4860:4001:402::10 v22.lscache1.c.youtube.com 2001:4860:4001:402::10 v22.lscache2.c.youtube.com 2001:4860:4001:402::10 v22.lscache3.c.youtube.com 2001:4860:4001:402::10 v22.lscache4.c.youtube.com 2001:4860:4001:402::10 v22.lscache5.c.youtube.com 2001:4860:4001:402::10 v22.lscache6.c.youtube.com 2001:4860:4001:402::10 v22.lscache7.c.youtube.com 2001:4860:4001:402::10 v22.lscache8.c.youtube.com 2001:4860:4001:402::10 v23.lscache1.c.youtube.com 2001:4860:4001:402::10 v23.lscache2.c.youtube.com 2001:4860:4001:402::10 v23.lscache3.c.youtube.com 2001:4860:4001:402::10 v23.lscache4.c.youtube.com 2001:4860:4001:402::10 v23.lscache5.c.youtube.com 2001:4860:4001:402::10 v23.lscache6.c.youtube.com 2001:4860:4001:402::10 v23.lscache7.c.youtube.com 2001:4860:4001:402::10 v23.lscache8.c.youtube.com 2001:4860:4001:402::10 v24.lscache1.c.youtube.com 2001:4860:4001:402::10 v24.lscache2.c.youtube.com 2001:4860:4001:402::10 v24.lscache3.c.youtube.com 2001:4860:4001:402::10 v24.lscache4.c.youtube.com 2001:4860:4001:402::10 v24.lscache5.c.youtube.com 2001:4860:4001:402::10 v24.lscache6.c.youtube.com 2001:4860:4001:402::10 v24.lscache7.c.youtube.com 2001:4860:4001:402::10 v24.lscache8.c.youtube.com
2010年1月17日星期日
2009年10月31日星期六
2009年10月5日星期一
Archlinux : Realtek网卡没有连接的问题
原因及解决:ArchWiki-网络配置-Realtek没有连接/网络唤醒问题
另:伟大的墙怎么好像发疯把ArchWiki也给禁了?
2009年6月8日星期一
2009年6月6日星期六
TCP/IP Guide : TCP/IP 应用层协议 (4)-(6)
第四部分 TCP/IP网络管理框架和协议
16.1.3 SNMP的设计目标
定义了一套允许网络管理员远端监视和操作TCP/IP网络设备的技术
SNMP两种设备类型:被管节点/网络管理NMS
16.2.2 SNMP实体
SNMP管理信息库MIB,用于SNMP信息交换
图16-1 SNMP操作模型
16.3.1 SNMP框架组件
17.1.1 SNMP面向信息设计
管理站通过改变变量来控制设备操作,而不是发出命令
SNMP不是根据用于控制特定设备的命令定义的,而是按照管理信息变量(又称为对象)定义的,对象集合称MIB
管理信息结构SMI标准确保MIB对象的通用性
18.1.2 SNMP划分为协议操作和传输映射
SNMP用于在NMS及被管设备间传递管理信息,包括描述设备之间实际报文交换的大量协议操作,以及一组定义这些报文在不同类型网络上传输的传输映射
IP协议是SNMP最常用的传输映射
SNMP管理信息的两种方法:轮询驱动(NMS->被管节点),中断驱动(被管节点->NMS)
SNMP使用UDP,因此请求若未回答就会重传
由被管者向NMS发送的陷阱报文不需确认回答,也就不知道报文是否成功到达
SNMP报文:首部,主体(PDU)
远程网络监控Remote Network Monitoring,RMON
RMON是SNMP的一个MIB模块,定义一组特定的MIB对象供网络监视探针使用
第五部分 TCP/IP应用层寻址和应用程序分类
统一资源标识符Uniform Resource Identifier,URI
- 统一资源定位符Uniform Resource Locator,URL
- 统一资源名Uniform Resource Name,URN
URI用于应用层寻址
21.1.1 URL和URN
URL指定如何使用访问方法和位置相结合来访问一个对象
URN通过名字来标识一个对象,但不指出如何访问它
URL纲要语法:
<纲要>://<用户>:<密码>@<主机>:<端口>/<url路径>;<参数>?<查询>#<分片>
为了引用C:\WINDOWS\SYSTEM32\DRIVERS\ETC\HOSTS,可以使用如下的URL:
file:///C|/WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS
URN的通用语法:
URN:<名字空间ID>:<资源标识符>
例如某一本书可以唯一标识为URN:isbn:0-679-73669-7
网络新闻Usenet:允许用户发送报文,成千上万个用户共享关于各种主题的报文的方法,任何人均可做出响应
第六部分 TCP/IP通用文件传送协议
23.2.2 FTP的控制连接和数据连接
当建立一个FTP会话时,使用TCP创建一个永久的控制连接以传递命令和回答
当发送文件和其他数据时,它们在独立的TCP数据连接上传递,该连接根据需要创建和拆除
FTP进程组件:
- 协议解释器(protocol interpreter,PI)负责管理控制连接,它发起命令并接收应答
- 数据传输远程(data transfer process,DTP)负责在客户机和服务器之间实际发送和接收数据
- 客户机上还有用户界面组件,负责与人类FTP用户交互
图23-1 FTP操作模型
主动连接:服务器DTP使用20端口,主动打开一个到用户DTP的TCP连接,客户机通常为每次传输选择不同的端口,示例见图23-3
用户可以使用PORT命令指定客户机数据连接端口
被动连接:由客户机发起输入数据连接,服务器作出回答,向客户机给出服务器的IP地址及应该连接的服务器端口号。服务器在该端口上监听来自用户DTP的输入TCP连接,示例见图23-4
被动模式经常使用,因为许多现代客户机不接收来自服务器的输入连接(安全性考虑)
FTP传输模式:
- 流模式:数据作为无结构的连续字节流发送,是最通用且有效的方法
- 块模式:数据被划分为数据块并封装到独立的FTP块或记录中,每个记录有一个3字节首部以指示它的长度并包含被发送数据块的有关信息,同时使用算法跟踪传输的数据、检测并重新开始之前被中断的传输
- 压缩模式:使用流程编码压缩字节,被压缩的信息以类似块模式的方法发送,使用首部加有效载荷的记录格式
23.6.1 FTP数据类型:ASCII,EBCDIC,图像(二进制),本地
23.6.2 在不同类型的操作系统间传输ASCII数据类型时的行定界问题,也就是说文本文件的大小可能有变化
UNIX使用LF换行,苹果使用CR换行,Windows使用CR+LF换行
23.7 FTP内部命令组和协议命令
3个命令组:访问控制,传输参数,协议服务
图23-5 FTP应答码格式
表23-7 通用的FTP用户命令
24.1.2 FTP与TFTP比较
TFTP使用UDP进行传输,只允许文件发送和接收,只传输简单的ASCII或二进制文件,不进行认证
由于使用UDP,TFTP必须为协议控制和数据通信把数据打包为独立的报文,并处理定时传输以检测报文丢失,根据需要进行重传
TFTP只能用于读或写单个文件,通常更适合于小文件必须快速和简单传输的情况,例如引导无盘工作站
24.2 TFTP的通用操作,连接创建和客户机/服务器通信
TFTP服务器在69端口监听请求,客户机为其初始通信选择一个临时端口号,真实标识该数据传输,并被称为传输标识符(transfer identifier,TID),并且服务器也选择一个伪随机的TID用于给客户机返回响应
TFTP初始交换后,客户机和服务器以锁步(Lock-Step)方式交换数据和确认报文
每个设备为它收到的报文发送一个报文,即一个设备发送数据报文并等待确认,另一个设备发送确认并等待数据报文
图24-1 TFTP的读过程
图24-2 TFTP的写过程
图24-3 有选项协商(OACK)的TFTP读过程
TCP/IP Guide : TCP/IP 应用层协议 (1)-(3)
第一部分 名字系统
主机表,/etc/hosts,如 127.0.0.1 localhost
DNS的顶级域 Top-Level Domain,TLD
全限定域名Fully Qualified Domain Name,FQDN
部分限定域名Partially Qualified Domain Name,PQDN
6.2.1 DNS 资源记录 RR:二进制表示,文本表示
表6-1 常见DNS资源记录汇总
可以把多个IP与同一域名相关联,负载均衡
图7-1 迭代DNS解析
图7-2 递归DNS解析
7.4.1 DNS名字解析示例
CNAME 别名
反向地址解析 IN-ADDR.APRA
7.6.2 邮件交换记录 Mail Exchange,MX
8.5.1 标准DNS名字标记法
8.5.3 DNS报文压缩
8.6.5 具体RR语法和例子
8.6.6 主文件例子
第二部分 网络文件和资源共享协议
NFS 网络文件系统
9.3.1 NFS主要组件
9.4.1 通用的数据交换方法XDR
远程过程调用RPC
9.5.2 NFS中客户机及服务器职责
NFS服务器是无状态的,不跟踪记录自己的客户机状态,只对请求作出响应
第三部分 主机配置
10.1 主机配置的目的
路由器地址,网络掩码,DNS服务器,MTU,TTL等
主机配置协议 => 应用层
BOOTP 使用UDP,简单请求/应答,客户机在本地网络广播请求
67端口请求(广播),68端口应答(广播或单播)
图11-1 BOOTP一般操作
BOOTP服务器及客户机允许位于不同的网络,而RARP不行
因为RARP在链路层上运行,而BOOTP可以通过BOOTP中继代理进行处理
图11-5 BOOTP中继代理示例
11.6.3 使用广播中继BOOTP请求
BOOTP较为适合静态网络环境,例如客户机可以发送自身硬件地址,服务器从表中查找硬件地址以决定该客户机IP
DHCP三种分配:人工分配,自动分配(租约永久),动态分配(租约限时,期满需要进行更新)
13.3 DHCP通用操作和客户机有限状态机
13.4 DHCP租用分配,重分配和更新
图13-2 DHCP租用分配过程
DHCP服务器应答使用68端口,与BOOTP一样,必须针对服务器回答使用第二层交付或第三层广播
14.1.2 报文传输
15.3 DHCP自配置/自动专门IP寻址(Automatic Private IP Addressing,APIPA)
在无法发现DHCP服务器时,主机自配置地址,地址范围169.254.0.0/16
该地址不能在因特网上使用,不能与代理ARP一起工作,因为代理ARP对所有的专用地址都会响应
由于APIPA使用ARP检测地址冲突,因此不适合用于大型网络中
15.4 DHCP地址冲突检测
服务器在发送DHCPOFFER报文前,先向其计划提供的IP地址发送ping报文,并监听是否有应答,如果收到应答,则该IP已被占用
IPv6自配置IP:无状态自配置/状态自配置
2009年5月28日星期四
TCP/IP Guide : 第二篇 TCP/IP 较低层的核心协议 (8) TCP/IP 传输层协议
IP:无连接,不可靠,无确认,尽力而为的传输
TCP:面向连接,可靠,滑动窗口,确认的数据交付,自动重传未确认的传输
UDP:不需要创建连接,不可靠,数据可能丢失
表 42-1 UDP与TCP比较
图 43-1 多路复用和多路分解
43.3.2 端口号范围
表 43-1 常见的周知端口号及应用程序
表 43-2 常见的注册端口号及应用程序
UDP:使用UDP端口号在传输层寻址,提供用于差错检测的校验和,供那些不要求传输层提供可靠性、确认或流控的应用协议使用
44.2 UDP操作
UDP伪首部校验,防止将报文交付到错误目的地
DNS在较短的简单请求or应答时使用UDP 53端口,对要求可靠交付的大一点的报文(如区域传送)使用TCP 53端口
TCP面向连接、带确认、可靠性、滑动窗口、需要时进行重传、拥塞避免、流控、无结构数据亦即面向流
表45-1 TCP补充标准
45.2 TCP功能
应用程序通常将一个很短的独立数据块交给UDP打包
离散报文的方式要求程序主动了解数据报顺序等问题
TCP将数据视为流,而不需要把数据切割成块,应用程序自己确定数据元素结束or开始边界
TCP累积从应用进程处接收的数据流,定期将其打包成段,交付给IP层
最大段长MSS:Maximum Segment Size (不含TCP首部)
TCP字节级的标识机制:序列号
图46-4 增强型PAR,同一时刻可以有不止一个报文传输,每个报文均可单独确认
46.2.4 TCP面向流的滑动窗口确认系统
发送窗口:接收方允许发送方具有的、传输在外的、未经确认的最大字节数量
可用窗口:发送窗口长度 - 已发送而未确认的字节数
图46-6 TCP传输流分类及发送窗口专用名词
TCP累积确认,滑动窗口调整
UDP直接将数据发送给目的端口对应的进程,因此可以无缝处理任意多个直接正在向其发送报文的进程,因为UDP处理它们的方式都一样
TCP必须分离不同连接,独立管理每条连接的操作
一个连接由套接口标识:源地址,源端口,目的地址,目的端口
表46-1 常见TCP应用程序及对应端口
图47-1,表47-1 TCP有限状态机
客户进程主动打开(SYN),服务进程被动打开,每个设备都会为每个TCP会话建立传输控制块TCB
SYN:初始化连接时的序列号同步
图47-2 TCP三资握手
第二步的SYN+ACK是服务器对客户机的ACK和服务器自己的SYN
图47-3 TCP同时开始创建连接的过程
32比特初始序列号ISN
图47-4 TCP序列号同步
半开连接问题:一台设备关闭或终止了连接而另一设备不知情
47.5.1,47.5.2 TCP复位
TCP保活报文(不含数据的空段)
图47-5 TCP连接终止
最大段寿命MSL,客户机关闭TCP连接前需等待2倍MSL时间
图47-6 TCP同时连接终止过程
表48-1,图48-1 TCP段格式
表48-2 TCP段控制比特
TCP选项:最大段长度,窗口长度移位比特,……
48.2.3 伪首部的优越性
48.3.1 MSS选择:开销管理(首部及数据比例)~小,IP分片~大
IPv4最小MTU 576字节 - 20 字节TCP首部 - 20字节IP首部 = TCP标准MSS 536字节
SYN报文中的最大段长度选项,指定设备想使用的MSS
图48-6 服务器方TCP事务实例
图48-7 客户机TCP事务实例
48.4.5 滑动窗口的复杂化
TCP的PSH置位,立即交付
TCP的URG置位,优先发送
累积确认意味着,若一个段传丢了,那么在该段重传并成功接收前,之后的段都无法得到确认
49.2.2 TCP选择性确认(SACK)
往返时延RTT:round-trip time
TCP自适应重传
49.3.2 确认的多义性
图49-4 TCP窗口长度调整和流量控制
图49-5 收缩TCP窗口存在的问题
TCP探测段,提醒服务器返回当前窗口长度
图49-6 TCP糊涂窗口综合症SWS
49.6.2 SWS避免算法
49.7.2 TCP拥塞处理机制
2009年5月26日星期二
TCP/IP Guide : 第二篇 TCP/IP 较低层的核心协议 (7) TCP/IP 寻路协议(网关协议)
将互联网看作是一组独立的群组,每个群组称为一个自治系统(Autonomous System, AS)
一个自治系统由一组路由器和网络构成,这些路由器和网络受控于某个特定的组织或管理实体,自治系统采用单一、一致的策略进行内部寻路
内部寻路: 一个AS内路由器之间交换寻路信息
外部寻路:AS之间交换寻路信息,有时也能用于AS内部
每个AS内部可选用不同寻路协议,但AS之间使用的外部协议必须相同
内部路由器 vs 边界路由器
距离矢量 vs 链路状态
38.1.2 RIP概述、优点、缺陷
RIP:距离矢量,使用UDP,跳数(<16),慢收敛,环路,无穷计数(图38-3)
38.4.3 水平分割、具毒性逆转的水平分割,触发更新,抑制
RIP-2 使用多播而非广播
RIP 适用于小型、简单的互联网络
OSPF:链路状态,最短路径优先(SPF)
LSDB:链路状态数据库
利用LSDB构建最短路径树
OSPF适用于大规模或高性能AS中选路
OSPF 基本拓扑(对等模式) vs 层次拓扑
39.3.2 层次拓扑中路由器角色
区域内部路由器
区域边界路由器
主干路由器
区域边界路由器总是主干路由器,但主干路由器并不一定是区域边界路由器
39.5.2 OSPF报文传递,报文类型见表39-4
OSPF直接产生IP数据报,协议号89
BGP:边界网关协议,使用TCP,在AS之间交换网络可达性信息,并据此确定到网络的路由
BGP记录路径信息,通过对路径属性评估选择有效路由
40.2.2 BGP AS类型、流量、寻路策略
IGRP:内部网关选路协议,距离矢量,开销度量,多路径寻路
EIGRP:增强型内部网关选路协议,距离矢量,基于DUAL扩展更新算法,维护更多网络拓扑信息,并据此自动选择最低开销且无环路的路由
2009年5月19日星期二
TCP/IP Guide : 第二篇 TCP/IP 较低层的核心协议 (6) IP 支持协议
IP 设备之间通过 ICMP 控制报文交互可进行各种类型的通信
ICMP 负责IP层的诊断、测试、差错报告
图31-1 ICMP一般操作
ICMP差错报文只能发给源端
ICMP报文:差错报文、信息报文
表31-2 ICMP报文类别、类型、编码
31.4.1 不能生成ICMP差错报文的情况:
ICMP差错报文
广播或多播数据报
第一个分片以外的其他IP数据报分片
非单播源地址数据报
表31-3 ICMP通用报文格式
31.5.2 ICMPv4与ICMPv6 差错报文区别
ICMP差错报文:将初始IP首部及部分或所有载荷封装在ICMP报文中,随后再封装到一个新的IP首部中,作为差错报文报告发送给源端
32 ICMPv4差错报文类型和格式
超时报文:TTL 或 重组定时器 超时
图32-5 使用ICMP重定向报文进行主机重定向
ICMP 重定向报文用于路由器告知主机一个优先路由器,不用于更改路由器之间的路由
回显报文的常见方式是ping,测试主机可达性
路由器定时发送ICMP路由器通知报文向主机通知它们的存在和特征(多播地址224.0.0.1)
新加入网络的主机可以发送路由器请求报文(多播地址224.0.0.2 或 广播地址 255.255.255.255)
提示监听到这些报文的路由器发送路由器通知报文
使用IP选项的traceroute : 当该测试报文沿着路由传输时,经过的每台路由器均向源设备响应一个ICMP Traceroute 报文
使用ICMP 超时报文的traceroute : 依次发送TTL = 1, 2, 3, ...... 的 IP 报文
表34-2 ICMPv4 目的地不可达报文子类型
ICMPv6 回显请求及回显应答报文用于测试设备之间是否能够成功进行通信(ping 程序)
IPv6 路由器定时发送ICMPv6路由器通知报文
ICMPv6邻居通告及邻居请求报文 用于IPv6 ND 协议的部分 主机-路由器 发现功能
35.3 邻居请求报文允许设备检查某个邻居是否存在及可达并使设备能够启动地址解析
邻居通告报文证实主机或路由器存在,并可提供第2层地址信息
35.3.3 邻居通告和邻居请求报文寻址
邻居请求报要么以单播形式发送到目标设备的地址,要么发送到目标设备的请求节点多播地址
为响应邻居请求报文而产生邻居通告报文时,通告报文将以单播形式发送到发出请求报文的设备。如果请求报文是从一个未指明的地址发出的,此时通告报文将被多播到全节点多播地址
ICMPv6 重定向报文总是以单播形式发送到初始发送数据报的设备的地址
36 IPv6 邻居发现(Neighbor Discovery, ND)协议
ND协议规范了与本地网络设备之间通信相关的许多功能
ND是一个报文传递协议,并不实现某一具体的功能,而是通过报文交换完成一组活动
图36-1 邻居发现协议功能组及其功能
36.2 IPv6 ND 概述
36.3 IPv6 ND 的改进
IPv6 ND 主机-主机 通信功能之重复地址检测:当一主机使用IPv6 自动配置功能时,必须确保网络上不存在它试图使用的地址。通过向设备希望使用的地址发送一个邻居请求报文来完成,如果收到一个回应的邻居通告报文,则表明该地址已被使用
2009年5月16日星期六
TCP/IP Guide : 第二篇 TCP/IP 较低层的核心协议 (5) 与IP相关的特色协议
IP 网络地址转换:IP Network Address Translation,NAT
允许少量的公用IP地址被大量使用专用地址的主机共享
由于NAT使得主机更难被外部机器直接寻址,增强了安全性
28.1.2 IP NAT 的劣势
NAT 转换表:内部本地地址 -> 内部全局地址,静态/动态映射
静态映射一般用于实现公共网络向内部特殊服务器发起的通信
NAT 修改 IP 源or 目的地址,则需要重新计算IP首部校验和、TCP/UDP校验和
基于端口的NAT通过改变TCP/UDP报文中使用的端口号,使得专用网络中的大量设备同时共享单个内部全局地址
端口NAT存在更多兼容性问题,必须查看较高层的端口号,进行端口号转换
NAT的专用网络的内部地址如果同公共网络的地址重叠会产生问题,因此要采用overlapping NAT : 内部-> 外部 ,外部->内部,总是转换源or目的地址,依赖DNS
28.7 重叠NAT ,举例见表28-4
NAT的兼容性问题在于,IP地址也被网络层或更高层次的协议使用,NAT转换IP地址时,通常也要改变其他地方的参数,或对数据报进行转换。
如果NAT不支持上层协议对应的转换,则某些通信有可能无法正常工作
28.8 NAT兼容性问题及需求
当NAT使得IP地址长度改变时,甚至于TCP序列号也要改变
NAT不支持IPSec传输模式
IPSec:IP层通信安全,为任何较高层的TCP/IP应用程序及协议提供保护
表29-1 重要的IPSec标准
IPSec的重要用途:VPN
29.3 IPSec体系结构和实现方法
图29-4 IPSec传输模式
图29-5 IPSec隧道模式
29.5 IPSec安全性构成
图29-9 带有IPSec ESP的IPv6 数据报格式
注意ESP尾部的下一个首部将指向加密载荷中的IP首部
29.8 IPSec IKE 这边的写得很省,可参考《网络安全协议》里面的章节去看。
另:想起老板当年还发指的考过ISAKMP,泪啊。。。
30.2.2 移动IP功能 这章感觉写得一般,凑合看看,要具体了解的话有空还是再去找本书看吧
2009年5月15日星期五
TCP/IP Guide : 第二篇 TCP/IP 较低层的核心协议 (4) IPv6
24.2 IPv6的主要变化和新增内容
24.3.2 IPv4 -> IPv6 的迁移
- 设备同时支持v4、v6 (与v4、v6主机同时通信)
- IPv4 <-> IPv6 转换 (v4主机与v6主机通信)
- IPv6的IPv4隧道 (两个通信的v6主机之间经过只支持v4的链路)
IPv6:单播、多播、任播
任播:报文发往任意一个组员,通常是最容易到达的组员
IPv6 中的广播功能通过向设备组的多播寻址实现
:: 代表全零段,在地址中仅能出现一次
以FF开头的均为多播地址
25.4.1 IPv6 地址能自动反映层次结构,并被路由器用在因特网上传递信息,因此聚合路由更容易,选路效率更高
图25-3 全局单播地址以001开头,前缀48位,子网ID 16位,接口ID 64位
25.5.5 MAC -> IPv6 映射,唯一问题是,物理硬件改变,IPv6 地址也变
IPv6 回环地址为 ::1
IPv6 本地地址:
场点本地地址:只允许数据在场点或组织内部发送,以FEC~FEF开头
链路本地地址:只用于一条特定的本地物理链路,常用于地址解析和邻居发现,以FE8~FEB开头
25.7 IPv4 ~> IPv6 地址嵌入:
兼容v4,v6: ::v4
把不兼容v6的v4设备映射到v6地址空间:::FFFF:v4
图25-8 IPv6 多播地址格式
图25-9 IPv6 多播作用域
表25-7 IPv6 重要的周知多播地址
图25-10 每个单播地址均可映射为对应的 请求节点地址(多播地址),用于邻居发现(ND),当本地网络上其他设备需要到达它时使用
任播:为邻近设备设计的,通常位于同一网络,目前只有路由器使用任播地址
当一个单播地址被分给多个接口时,会自动创建一个任播地址
25.9.1 IPv6 无状态自动配置,主机可按其2层地址确定自身的IPv6地址
IPv6 不计算首部校验和,主首部40字节
载荷长度 = 数据报总长 - 40字节主首部
表26-2 IPv6 主首部格式
表26-3 IPv6 下一个首部的常用值
IPv6 最后一个扩展首部中的下一个首部字段包含了被封装的上层协议值
表26-4 IPv6 扩展首部
26.3.5 IPv6 扩展首部顺序
IPv4 路由器和物理链路 最小MTU 576字节
IPv6 链路 最小MTU 1280 字节
IPv6中,只有源节点才能分片,需要 路径MTU发现 or 使用默认的1280字节MTU
ICMPv6 分组太大报文向源反馈 => 路径MTU发现
图 27-1 IPv6 数据报分片
2009年5月14日星期四
TCP/IP Guide : 第二篇 TCP/IP 较低层的核心协议 (3) IP/IPv4
IP地址划分:网络ID 和 主机ID
图17-2 分类IP地址类别(A/B/C/D/E)确定算法
环回地址块(A类):127.0.0.0/8
C类专用地址块:192.168.0.0/16
D类多播地址块:1110...,224.0.0.0~239.255.255.255
多播地址代表一组IP设备,因此仅能用作数据报的目的地址使用,不能作为源地址
表17-6 IP多播地址范围及用途
表17-7周知的IP多播地址 224.0.0.0/24
A/B/C/D/E分类寻址问题的改进:
- 子网:主机ID 划分为 子网ID 和 主机ID
- 可变长子网掩码(Variable Length Subnet Masking, VLSM):子网多次划分,见图18-8
- 无类别域间寻路CIDR:不区分A/B/C/D/E类,而是任意大小的网络块,网络ID + 主机ID
- IPv6
- NAT
VLSM vs CIDR
- VLSM 处理一个专门组织的单一网络的子网
- CIDR 以多级层次结构代替了单级的分类层次结构
IP首部至少20字节
表21-1 IPv4 数据报格式
表21-3 IPv4 协议子字段
图21-3 IPv4 选项字段格式 (源路由:松散、严格,记录路由)
以太网最大载荷长度1500字节
如果IP数据报长度超过下层数据链路的MTU,则IP数据报需要分片
中间路由器可能会进行二次分片,但不会重组分片
只有接收方设备才会重组分片
路由器处理的链路MTU至少为576字节
采用ICMP进行MTU路径发现,探知能用于当前路径的最大MTU
禁止分片的标志字段DF -> 目的地不可达的差错报文:需要分片,但不允许分片的比特已被置位
寻路时优先使用具有最长网络标识符的匹配
23.5 IP多播:寻址、组管理IGMP、数据报处理及寻路
多播比较复杂(组处理及报文转发),且对带宽、路由器要求更高