CS-Notes/notes/计算机网络.md

849 lines
30 KiB
Markdown
Raw Normal View History

2018-02-20 10:40:05 +08:00
<!-- GFM-TOC -->
2018-02-22 14:47:22 +08:00
* [????? ????](#?????-????)
* [?????????](#?????????)
2018-02-20 10:40:05 +08:00
* [ISP](#isp)
2018-02-22 14:47:22 +08:00
* [???????????](#???????????)
* [?????????????](#?????????????)
* [??<3F><>????????<3F><>??](#??<3F><>????????<3F><>??)
* [1. ??<3F><>????](#1-??<3F><>????)
* [2. ???????](#2-???????)
* [3. ???<3F><>??](#3-???<3F><>??)
* [???](#???)
* [1. ???????](#1-???????)
* [2. ???????](#2-???????)
* [3. ???????](#3-???????)
* [4. ??????](#4-??????)
* [??????????????*](#??????????????)
* [1. ???<3F><>??](#1-???<3F><>??)
* [2. ???<3F><>??](#2-???<3F><>??)
* [3. ???????????????????](#3-???????????????????)
* [4. TCP/IP ?????](#4-tcpip-?????)
* [????? ?????](#?????-?????)
* [?????](#?????)
* [???????](#???????)
* [??????<3F><>???](#??????<3F><>???)
* [1. ?????<3F><>???????](#1-?????<3F><>???????)
* [2. ?????????](#2-?????????)
* [3. ???????](#3-???????)
* [4. ??????](#4-??????)
* [?????? ??????<3F><>??](#??????-??????<3F><>??)
* [????????????](#????????????)
* [1. ??????](#1-??????)
* [2. ???????](#2-???????)
* [3. ?????](#3-?????)
* [??????? -PPP <20><>??](#???????--ppp-<2D><>??)
* [????????????](#????????????)
* [????? - CSMA/CD <20><>??*](#?????---csmacd-<2D><>??)
* [??????](#??????)
* [MAC ??](#mac-??)
* [?????????](#?????????)
* [?????? ?????*](#??????-?????)
* [????<3F><>?? IP ????](#????<3F><>??-ip-????)
* [IP ????????](#ip-????????)
* [IP ??????](#ip-??????)
* [1. ????? IP ???](#1-?????-ip-???)
* [2. ????????](#2-????????)
* [3. ??????? CIDR???????????](#3-???????-cidr???????????)
* [IP ????? MAC ???](#ip-?????-mac-???)
* [???????<3F><>?? ARP](#???????<3F><>??-arp)
* [<EFBFBD><EFBFBD>???????](#<23><>???????)
* [????????<3F><>??????????](#????????<3F><>??????????)
* [<EFBFBD><EFBFBD>???????????????](#<23><>???????????????)
* [<EFBFBD><EFBFBD>?????<3F><>??](#<23><>?????<3F><>??)
* [1. ???????<3F><>?? RIP](#1-???????<3F><>??-rip)
* [2. ???????<3F><>?? OSPF](#2-???????<3F><>??-ospf)
* [3. ??????<3F><>?? BGP](#3-??????<3F><>??-bgp)
* [??????????<3F><>?? ICMP](#??????????<3F><>??-icmp)
* [??????????? PING](#???????????-ping)
* [IP ??](#ip-??)
* [????????? VPN](#?????????-vpn)
* [????????? NAT](#?????????-nat)
* [?????? ?????*](#??????-?????)
* [UDP ?? TCP ?????](#udp-??-tcp-?????)
* [UDP ??????](#udp-??????)
* [TCP ??????](#tcp-??????)
* [TCP ??????????](#tcp-??????????)
* [TCP ????<3F><>???](#tcp-????<3F><>???)
* [TCP ????????](#tcp-????????)
* [TCP ???????](#tcp-???????)
* [TCP ????????](#tcp-????????)
* [TCP ???????](#tcp-???????)
* [??????????????](#??????????????)
* [??????????](#??????????)
* [?????? ??<3F><>?*](#??????-??<3F><>?)
* [?????? DNS](#??????-dns)
* [1. ??<3F><>?](#1-??<3F><>?)
* [2. ????????](#2-????????)
* [???????<3F><>?? FTP](#???????<3F><>??-ftp)
* [??????<3F><>?? TELNET](#??????<3F><>??-telnet)
* [????? WWW](#?????-www)
* [???????<3F><>??](#???????<3F><>??)
2018-02-20 10:40:05 +08:00
* [POP3](#pop3)
* [IMAP](#imap)
* [SMTP](#smtp)
2018-02-22 14:47:22 +08:00
* [???????????<3F><>?? DHCP](#???????????<3F><>??-dhcp)
* [?????? P2P](#??????-p2p)
* [Web ??????????](#web-??????????)
* [??????](#??????)
* [?<3F><>?????](#?<3F><>?????)
2018-02-20 10:40:05 +08:00
<!-- GFM-TOC -->
2018-02-22 14:47:22 +08:00
# ????? ????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## ?????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????????????????????????????????????????????????????????????????????<3F><>
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/04ff7ae6-7bee-4cf8-82f8-dfe2ba1f3616.jpg)
## ISP
2018-02-22 14:47:22 +08:00
?????????????? ISP ??????????????????????? IP ???????????????<3F><>???<3F><>???????????<3F><>???????????? ISP ?????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????????????? ISP ????ISP ?????????????<3F><>??????? ISP?????? ISP ????? ISP??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????????? IXP ??????????????????????????????????????????<3F><>
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/17d807ef-03bf-4824-a97c-ea5fb58ec61d.jpg)
2018-02-22 14:47:22 +08:00
## ???????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
1. ??????????????????????????????????????????????
2. ??????????????????????????<3F><>?????<3F><>??????<3F><>????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/005d83c2-e64a-41f0-bbdd-51c71d494a18.jpg)
2018-02-22 14:47:22 +08:00
## ?????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**1. ??? - ????????C/S??**
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**2. ????P2P??**
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## ??<3F><>????????<3F><>??
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/b97958dd-3e43-45f7-97f5-3ec20f3f8b88.jpg)
2018-02-22 14:47:22 +08:00
### 1. ??<3F><>????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??<3F><>????????<3F><>????????????????????????????????????????<3F><>?????????????????????????????<3F><>??????????????<3F><>?????????????????<3F><>??????<3F><>????????<3F><>??????????????????? 10%??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
### 2. ???????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????????????????????????????????????<3F><>???????????????????????????????????????????????????<3F><>????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
### 3. ???<3F><>??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???<3F><>????????<3F><>???????????????????????????????????????????????????????????????????????????<3F><>??????????????????<3F><>????????<3F><>?????????????????????????<3F><>??????????????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/6f4af159-8b03-4246-8d0e-222db65bb83c.jpg)
2018-02-22 14:47:22 +08:00
?<3F><>??????????????????<3F><>???????????????<3F><>???????<3F><>?????????????????<3F><>?????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????????????????????????<3F><>???<3F><>??????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## ???
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????? = ??????? + ??????? + ??????? + ??????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/ceee91c2-da26-4169-94c3-e4608b46b9ac.png)
2018-02-22 14:47:22 +08:00
### 1. ???????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????<3F><>???????????????????????
2018-02-20 10:40:05 +08:00
![](http://latex.codecogs.com/gif.latex?\\\\delay=\frac{l(bit)}{v(bit/s)})
2018-02-22 14:47:22 +08:00
???? l ??????????????v ????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
### 2. ???????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????<3F><>????????????????????????????????????????
2018-02-20 10:40:05 +08:00
![](http://latex.codecogs.com/gif.latex?\\\\delay=\frac{l(m)}{v(m/s)})
2018-02-22 14:47:22 +08:00
???? l ???????????v ???????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
### 3. ???????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????<3F><>???????????????<3F><>????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
### 4. ??????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????<3F><>????????????<3F><>????????????????????????????<3F>y??????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## ??????????????*
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/1005dc9d-9049-4b06-9524-6171e56ebd8c.png)
2018-02-22 14:47:22 +08:00
### 1. ???<3F><>??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??? a ????????<3F><>????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
1. ???????????????????????????????????????????????????????
2. ???????????????????<3F><>???????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
### 2. ???<3F><>??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
1. ??<3F><>???????<3F><>??????????????????? HTTP??DNS ????????<3F><>??????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
2. ???????????????????????????????????<3F><>?<3F><>?????????????????<3F><>???????????????????<3F><>?<3F><>?<3F><>????????????<3F><>?<3F><>???????<3F><>?? TCP?????????????????????????????????<3F><>?????<3F><>?????????<3F><>?? UDP????????????????????????????????????<3F><>???????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
3. ???????????????????????????????<3F><>??????????????<3F><>?????????????????????????????<3F><>????????????????????????<3F><>???
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
4. ??????<3F><>??????????????????????????????????<3F><>????<3F><>????<3F><>??<3F><>???????????????????????????<3F><>??????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
5. ?????????????????????????????????????????????????????????<3F>^????????????????????<3F><>????????????<3F><>???????????????????<3F><>??<3F><>???????<3F><>????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
### 3. ???????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????????<3F><>??????????<3F><>????????????????<3F><>?????????????????<3F><>?????????<3F><>????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
<EFBFBD><EFBFBD>???????????????<3F><>?<3F><>???<3F><>????<3F><>??????????<3F><>????????????????<3F><>?????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/f7d5da89-2d75-4d8f-85e7-6b608865dc00.jpg)
2018-02-22 14:47:22 +08:00
### 4. TCP/IP ?????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????????????<3F><>??????????<3F><>??????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????? TCP/IP ????????????? OSI ????????<3F><>??????????? IP ????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/3e2200b3-1c18-4853-ae42-7788e8e1f939.png)
2018-02-22 14:47:22 +08:00
TCP/IP <20><>?????????????????<3F><>?<3F><>?????IP <20><>????????????????????<3F><>??
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/9ecaebee-670e-4cb2-9cdb-3029c00f33bd.png)
2018-02-22 14:47:22 +08:00
# ????? ?????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## ?????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
1. ????????????????????
2. ??????????????????????
3. ?????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## ???????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/d2c55c84-aa1f-43c1-bd97-457bcb7816b3.png)
2018-02-22 14:47:22 +08:00
## ??????<3F><>???
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
### 1. ?????<3F><>???????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????????????????????<3F><>?????????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????????????????????????????????????????????????????????????????????????????????????????????<3F><>????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/543d47a1-f0dd-414f-b23c-0c142c814854.png)
2018-02-22 14:47:22 +08:00
### 2. ?????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????????????????????????????????<3F><>?<3F><>???????????????????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/29058e09-bb72-4040-a73d-4c497895e9ce.jpg)
2018-02-22 14:47:22 +08:00
### 3. ???????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????<3F><>??????????????????????<3F><>?????????????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/78534153-88d1-4f83-a6e0-59064dbdc43a.png)
2018-02-22 14:47:22 +08:00
### 4. ??????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????? m bit ??????????????<3F><>????????????????????????? $\vec{S}$ ?? $\vec{T}$ ??
2018-02-20 10:40:05 +08:00
![](http://latex.codecogs.com/gif.latex?\\\\\vec{S}\cdot\vec{T}=0)
2018-02-22 14:47:22 +08:00
??????? m=8??????? $\vec{S}$ ? 00011011??????<3F><>???????????????? 1 ??????????????????? 0 ??????????????? 11100100??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????? 00011011 ???? (-1 -1 -1 +1 +1 -1 +1 +1)????????
2018-02-20 10:40:05 +08:00
![](http://latex.codecogs.com/gif.latex?\\\\\frac{1}{m}\vec{S}\cdot\vec{S}=1)
![](http://latex.codecogs.com/gif.latex?\\\\\frac{1}{m}\vec{S}\cdot\vec{S'}=-1)
2018-02-22 14:47:22 +08:00
???? $\vec{S'}$ ? $\vec{S}$ ?????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????????????????????????????????? $\vec{S}$ ????????????????????????????? 0 ????????????????????????? 1 ??????????????? 1?????? -1 ??????????????? 0??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????<3F><>??????????????? m ????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/0042edad-8e3b-4279-bd93-6906fcd1b640.jpg)
2018-02-22 14:47:22 +08:00
# ?????? ??????<3F><>??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## ????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
### 1. ??????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????????????????????<3F><>??????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/ea5ed9b2-6d9f-48fb-b890-0288caf9088a.jpg)
2018-02-22 14:47:22 +08:00
### 2. ???????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????<3F><>???????????????????<3F><>????<3F><>?????????????????????????<3F><>??????????<3F><>?????????????<3F><>??????<3F><>???????????????????????????????????????????????????????????????????????????????????????????<3F><>????????????????????????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/44e1d90e-3fe6-4dd6-8dce-6daab12e7663.jpg)
2018-02-22 14:47:22 +08:00
### 3. ?????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????<3F><>?????????????????<3F><>CRC????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## ??????? -PPP <20><>??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????????????????? ISP ?????????????????PPP <20><>??????????????? ISP ????????????????????<3F><>??<3F><>?<3F><>
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/8b5bd2c8-8425-4a8b-89db-235c95800de9.jpg)
2018-02-22 14:47:22 +08:00
?? PPP ????<3F><>?F ?????????????A ?? C ?????????<3F>^FCS ????? CRC ????????<3F><>??????<3F><>????????? 1500??
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/a5fa89e7-54b9-4e2f-8c48-a35712d7b2f5.jpg)
2018-02-22 14:47:22 +08:00
## ????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/8b15e36f-69b4-46b6-a07c-7234ac7c7927.jpg)
2018-02-22 14:47:22 +08:00
## ????? - CSMA/CD <20><>??*
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
CSMA/CD ???????????????? / ??????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**??????**??????????????????<3F><>??????????????????????????
**???????**??????????????????????????????????????????????????????????
**??????**????????<3F><>??????????????????????????????????????????????????????????????????????????????????<3F><>??????????????????????????????<3F><>???????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/f9ed4da5-0032-41e6-991a-36d995ec28fd.png)
2018-02-22 14:47:22 +08:00
?????????????? ??????????????????? 2?? ?????????????????????? 2?? ? **??????**????<3F><>??????????????<3F><>???????????????<3F><>?????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????????????????????????????????????????? **????????????????** ?????????????????????? {0, 1, .., (2<sup>k</sup>-1)} ??????????????????? r?????? r ??????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## ??????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????????<3F><>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????<3F><>?
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/897a4f4e-2683-44e1-a26a-c0d0234dc576.jpg)
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/40c3f8e5-3a20-45b6-a60c-77b9b952e104.jpg)
2018-02-22 14:47:22 +08:00
## MAC ??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
MAC ????? 6 ????48 <20><>????????????<3F><>????????????????????<3F><>???????????<3F><>?? MAC ??????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
MAC ???????????????????????<3F><>?<3F><>??????<3F><>????? 46-1500 ???????<3F><>????????FCS ?????????<3F><>??????? CRC ???<3F><>?????????????????????????? FCS ????????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/50d38e84-238f-4081-8876-14ef6d7938b5.jpg)
2018-02-22 14:47:22 +08:00
## ?????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????????????????<3F><>??????????<3F><>???????????????????<3F><>????????????????????????? (A1, A2, A3, A4) ??????????????????A1 ???????? A2??A3??A4 ?????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/a74b70ac-323a-4b31-b4d5-90569b8a944b.png)
2018-02-22 14:47:22 +08:00
# ?????? ?????*
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## ????<3F><>?? IP ????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????????????????????????????????????????????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??? IP <20><>?<3F><>?????????????????????????????????????????????????????????<3F><>
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/fe3d224c-8ffd-40f9-85b1-86ffe1393f6c.jpg)
2018-02-22 14:47:22 +08:00
?? IP <20><>?????????????????<3F><>?<3F><>
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
1. ???????<3F><>?? ARP??Address Resolution Protocol??
2. ??????????<3F><>?? ICMP??Internet Control Message Protocol??
3. ?????????<3F><>?? IGMP??Internet Group Management Protocol??
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/163cf8b4-5f30-46c9-af00-316a71b3c890.jpg)
2018-02-22 14:47:22 +08:00
## IP ????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/8681db55-0873-434b-aa98-83d07e8392ae.jpg)
2018-02-22 14:47:22 +08:00
**?<3F><>** : ?? 4??IPv4???? 6??IPv6?????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**???????** : ? 4 <20><>?????????? 15???? 1 ??????? 1 ?? 32 <20><>???????????? 4 ?????????????????? 20 ???????????<3F><>? 5??????????????????? 4 ????????????????<3F><>??????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**???????** : ??????????????????????????<3F><>?
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**?????** : ???????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**???** : ??????????????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**????** : ????????????????????????????????<3F><>? 8 ????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/45c86855-9b18-4cf4-a9a7-f8b6eb78d133.png)
2018-02-22 14:47:22 +08:00
**???????** ??TTL????????????????????????????????????<3F><>??????????<3F><>???????????<3F><>???? TTL ? 0 ?????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**<2A><>??**?????<3F><>???????????????????<3F><>????<3F><>??????? ICMP??TCP??UDP ???
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**????????**??????????????????<3F><>?????????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## IP ??????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
IP ?????????????????????????<3F><>?
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
1. ????? IP ?????
2. ??????????
3. ?????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
### 1. ????? IP ???
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????????????????????????<3F><>???????<3F><>????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
IP ??? ::= {< ????? >, < ?????? >}
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/2ddd6132-60be-4a72-9daa-3d9756191f4a.png)
2018-02-22 14:47:22 +08:00
### 2. ????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????????????????????????????????????? IP ???????????? IP ?????????????<3F>I??????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
IP ??? ::= {< ????? >, < ?????? >, < ?????? >}
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????????????????????????? B ?????????????????? 255.255.0.0????? B ???????????????????????????????? 11111111 11111111 11000000 000000??????? 255.255.192.0??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
### 3. ??????? CIDR???????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
CIDR ???????? A ??B ??? C ????????????????????????????????????????? IP ??????<3F><>????????????????????????<3F><>??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
IP ??? ::= {< ???????? >, < ?????? >}
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
CIDR ??????????? IP ?????????????????????????????? 128.14.35.7/20 ???? 20 <20><>?????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
CIDR ??????????????????????????????????? 1 ?????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??? CIDR ????????<3F><>????????? CIDR ??????????????????????????<3F><>??????<3F><>????????????<3F><>????????????????<3F><>?????????<3F><>????????????????????????????????????<3F><>???????????<3F><>??????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??<3F><>????????????<3F><>??????????????????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## IP ????? MAC ???
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????????????????????<3F><>?????????????<3F><>????????????????????<3F><>?IP ?????????????????????????? MAC ?????????<3F><>????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/86b71296-0d1e-4a63-bcd9-54955b6b781b.jpg)
2018-02-22 14:47:22 +08:00
## ???????<3F><>?? ARP
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????? IP ?????? MAC ?????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????????????? ARP ??????<3F><>????????????? IP ??? ?? MAC ?????????????<3F><>?????????????????? ARP ??????<3F><>??? IP ????????????? ARP ????????? MAC ?????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/8bc6fc2c-d198-4759-b06c-18d94d851e97.png)
2018-02-22 14:47:22 +08:00
## <20><>???????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
<EFBFBD><EFBFBD>??????????????????<3F><>??????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/3a676c54-b559-4466-9b21-eb10f1e25879.jpg)
2018-02-22 14:47:22 +08:00
????????????????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/7f82fd18-7f16-4125-ada6-bb6b795b4fda.png)
2018-02-22 14:47:22 +08:00
## ????????<3F><>??????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
- ??????????????????<3F><>??????? MAC ????????? MAC ????????<3F><>????????????????????????? IP ????? MAC ????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
- <20><>????<3F><>???????????? IP ????????? IP ?????????<3F><>?????<3F><>???????<3F><>?????????<3F><>???
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## <20><>???????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
1. ???????????????????????? IP ??? D?????????????? N????<3F><>????????????????? IP ???????????????????<3F><>????????????
2. ?? N ???????<3F><>?????????????????????????????????????
3. ??<3F><>????????????? D ?????????<3F><>????????????????????????????????<3F><>??????
4. ??<3F><>??????<3F><>??????? N ??<3F><>????????????????<3F><>?????????????????<3F><>??????
5. ??<3F><>?????????????<3F><>????????????????<3F><>???????????????<3F><>??????
6. ??????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/8d211911-0e62-4190-ab00-d8610adec4a0.jpg)
2018-02-22 14:47:22 +08:00
## <20><>?????<3F><>??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????<3F><>?????<3F><>?<3F>Y???????????????????????????????<3F><>???????????<3F><>?????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????????????<3F><>???????? AS????? AS ????????????? AS ?????<3F><>?????<3F><>?<3F><>
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????<3F><>?????<3F><>?<3F>l?????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
1. ???????<3F><>?? IGP??Interior Gateway Protocol?? ????????????????? RIP ?? OSPF??
2. ??????<3F><>?? EGP??External Gateway Protocol?? ????????????????? BGP??
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/e0be6970-5b0e-44a2-bc71-df4d61c42b8f.jpg)
2018-02-22 14:47:22 +08:00
### 1. ???????<3F><>?? RIP
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
RIP ??????????????????????<3F><>?????<3F><>?<3F><>??????????????????????<3F><>????????? 1?????????? 15?????? 15 ????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
RIP ????????????????????<3F><>?????????????<3F><>???????????<3F><>??????????<3F><>?????????????????????????<3F><>?????????????????????<3F><>?????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
1. ????? X ??????<3F><>?????????? RIP ??????????????<3F><>?????????????????????<3F><>?????? X?????????<3F><>??????<3F><>? 1??
2. ??????? RIP ?????<3F><>????????????????????<3F>s
- ???????<3F><>??????????????? N?????????????<3F><>????<3F><>?
- ???????????<3F><>????????? X??????????????<3F>I???<3F><>????<3F><>?????????????????????<3F><>???? d <20><>??<3F><>????<3F><>????????<3F><>??????????<3F><>?????? Net2, 5, P???<3F><>???? Net2, 4, X???????????????????????
3. ?? 3 ???????????????<3F><>?????????<3F><>???????????<3F><>?????????????????????? 16??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
RIP <20><>???????????<3F><>?????? RIP ????????????? 15???????????????????????????????????????????????????????????????????<3F><>??????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
### 2. ???????<3F><>?? OSPF
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????<3F><>?????? OSPF????????? RIP ?????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????? OSPF ???????????????????????????????<3F><>???????????????? Dijkstra ????????<3F><>???? SPF??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
OSPF ???????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
1. ?????????<3F><>?????<3F><>??????????????????????<3F><>????
2. ??????????????????<3F><>????????<3F><>??????<3F><>??????????<3F><><EFBFBD><EFBFBD>?????????????<3F><>????????????<3F><>??<3F><>?????????????????????
3. ??<3F><>???<3F><>???????<3F><>???<3F><>??????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????<3F><>??????????????????????????????????????? RIP??OSPF ????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
### 3. ??????<3F><>?? BGP
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
AS ????<3F><>????????????????????????????????? AS ?????<3F><>????<3F><>?????<3F><>?<3F><>???????????<3F><>????????????? AS ????<3F><>???????????<3F><>????????????<3F><> AS ??????????? AS ??????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
BGP ??????????????<3F><>????????????<3F><>?<3F><>???????<3F><>??????<3F><>?????<3F><>?<3F><>
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??? AS ?????????? BGP ???????????????????? BGP ????????<3F><>?? TCP ??????????<3F><>???????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/eb6271de-22c9-4f4b-8b31-eab1f560efac.png)
2018-02-22 14:47:22 +08:00
## ??????????<3F><>?? ICMP
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
ICMP ????????<3F><>????? IP ???????????????????????????? IP ??????<3F><>????????????<3F><>?<3F><>
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/9b5e0fa0-9274-4219-a3a9-84fbb509c735.jpg)
2018-02-22 14:47:22 +08:00
ICMP ??????????<3F><>??????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/6e11b122-95ce-4869-bf7d-3b0d7591707e.jpg)
2018-02-22 14:47:22 +08:00
## ??????????? PING
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
PING ?? ICMP ????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
PING ??????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
1. PING ???????<3F><>???????????????????? MAC ??????????????????????????? MAC ??????????????? ARP ????
2. PING ??????<3F><>?????????????????????????????????????????????????????????? MAC ????????? MAC ????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## IP ??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????????<3F><>?????????????<3F>`??????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/c77b6a18-dfac-42a2-ac89-7e99481275dc.jpg)
2018-02-22 14:47:22 +08:00
## ????????? VPN
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???? IP ???????????????????????? IP ??????????<3F><>???????????<3F><>????????????????????????????????<3F><>???????????????????<3F><>?????????????????????????????<3F><>?? IP ??????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????????<3F><>
2018-02-20 10:40:05 +08:00
1. 10.0.0.0 \~ 10.255.255.255
2. 172.16.0.0 \~ 172.31.255.255
3. 192.168.0.0 \~ 192.168.255.255
2018-02-22 14:47:22 +08:00
VPN ??<3F><>???????????????????????????????????<3F>^?????????????????????????????????????????????????????????????????????<3F><>???????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????<3F><>????? A ?? B ????????????????????????? A ?????? X ???????????? B ?????? Y ????IP ????????????? 10.1.0.1????????? 10.2.0.3?????????????????????????<3F><>???? R1??R1 ???????????<3F><>????????????????????????????????<3F><>???? R1 ??????? 125.1.2.3?????????<3F><>???? R2 ??????? 194.4.5.6??<3F><>???? R2 ???????????????????<3F><>???????????????????????????? 10.2.0.3????????? Y??
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/bf4ed077-d481-4db7-9e7a-85d841a5a8c3.jpg)
2018-02-22 14:47:22 +08:00
## ????????? NAT
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????????????????? IP ????????????????????????????????? NAT ???????? IP ??????? IP??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????NAT ?????? IP ????? IP ?????????????????? n ????? IP ???????????????????????? n ?????????????????????<3F><>????????? IP ????????????? NAT ???????????????????????????????????????????????????????????? IP ???????????? NAT ?????????????????? NAPT??
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/0f31bc7a-d60b-48a6-8e3f-597708369e52.png)
2018-02-22 14:47:22 +08:00
# ?????? ?????*
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????<3F><>??????????????????????????????????????????<3F><>?????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????????????????????????????????????????????????????????<3F><>????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## UDP ?? TCP ?????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????<3F><>?? UDP??User Datagram Protocol??
???????<3F><>?? TCP??Transmission Control Protocol??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
UDP ???????????????????????????????????????????????<3F><>????????????????????????????? UDP ???????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
TCP ???????????????????????????????????????????????????????????????????<3F><>?????????????????????????????????<3F><>?????????<3F><>
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## UDP ??????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/bd6c05f3-02ee-4c8a-b374-40c87154a898.jpg)
2018-02-22 14:47:22 +08:00
????????? 8 ????????????????????????????????12 ????<3F><>????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## TCP ??????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/21a00b02-c0a6-4bcd-9af0-5ec6bb66e34c.jpg)
2018-02-22 14:47:22 +08:00
**???** ???????????????<3F><>??????????? 301????????????????? 301?????<3F><>???????????? 100 ????????????????<3F><>?????? 401??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**????** ????????????????????<3F><>????????? B ?????? A ???????????????<3F><>????? 501??<3F><>???????????? 200 ??????? B ?????????????<3F><>????? 701??B ????? A ????????????????? 701??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**???????** ?????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**??? ACK** ???? ACK=1 ??????????<3F><>????????<3F><>??TCP ?<3F><>????????????????<3F><>???????<3F><>?????? ACK ?? 1??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**??? SYN** ????????????????????????? SYN=1??ACK=0 ?????????????????????<3F><>??????????????????????????? SYN=1??ACK=1??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**??? FIN** ??????????????????? FIN=1 ???????????<3F><>?????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**????** ????????????????<3F><>??????????????????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## TCP ??????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/086871db-5871-460f-97b7-126cd738bb0e.jpg)
2018-02-22 14:47:22 +08:00
???? A ???????B ??????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
1. ???? B ???? LISTEN????????????????????????????
2. A ?? B ??????????????<3F><>?SYN=1??ACK=0???????????????? x??
3. B ?????????????<3F><>?????????????????? A ??????????????<3F><>?SYN=1??ACK=1??????? x+1??????????????????? y??
4. A ??? B ????????????<3F><>????? B ????????????? y+1?????? x+1??
5. B ??? A ???????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## TCP ????<3F><>???
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/78f65456-666b-4044-b4ee-f7692dbbc0d3.jpg)
2018-02-22 14:47:22 +08:00
??????????????????????????????????????????????????? ACK????? ACK ????????????? 1??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
1. A ??????????????<3F><>?FIN=1??
2. B ?????????????? TCP ???????????B ???? A ??????????? A ?????? B ?????????
3. ?? B ????????????????????????????????<3F><>?FIN=1??
4. A ?????????????????????
2018-02-20 10:40:05 +08:00
**TIME_WAIT**
2018-02-22 14:47:22 +08:00
?????????????????? FIN ???????????????????????????? CLOSED ??????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
1. ?????????????????????????? B ???? A ??????????????<3F><>??????????<3F><>????????????????<3F><>?A ????????????????????????????????
2. ??????????????<3F><>????????????<3F><>???????????????<3F><>???????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## TCP ????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/223fc26e-2fd6-484c-bcb7-443cac134f15.jpg)
2018-02-22 14:47:22 +08:00
???????????????????????????????????????????????????????????????? TCP ??????<3F><>??????<3F><>????????????????<3F><>?????????????????????????????????????<3F><>??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????????????????????????????????????????????????????????? {31, 32, 34, 35}?????? {31, 32} ??????? {34, 35} ??????????????? 32 ?????????????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## TCP ???????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
TCP ??<3F><>????????????????????????????????????????????????????????????????????<3F><>?
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????<3F><>????????????????????????????????? RTT??????????????? RTTs ?????????
2018-02-20 10:40:05 +08:00
![](http://latex.codecogs.com/gif.latex?\\\\RTTs=(1-a)*(RTTs)+a*RTT)
2018-02-22 14:47:22 +08:00
??????????????? RTO ???????? RRTs??TCP ?????????????????
2018-02-20 10:40:05 +08:00
![](http://latex.codecogs.com/gif.latex?\\\\RTO=RTTs+4*RTT_d)
2018-02-22 14:47:22 +08:00
???? RTT<sub>d</sub> ??????????? RRT ?? RRTs ?<3F><>??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## TCP ????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????????????????????????????????????<3F><>??????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????????????????<3F><>??????<3F><>????????????????????<3F><>????????????????????????<3F>L???????????? 0???????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## TCP ???????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????????????<3F>q????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????<3F><>???????????????????????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/a69af9bb-b5ad-4896-862d-697e5ee4feb1.png)
2018-02-22 14:47:22 +08:00
TCP ?????????????????????????????????????????????????????????????????????????????????cwnd????????????????????????????????????????????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????????????????<3F>s
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
1. ?????????????????<3F><>?????????????????
2. ??? TCP ?????????????????????<3F><>????<3F><>??<3F><>?????<3F><>?
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/346244ff-98c1-4f12-9a87-d0832e8c04cf.jpg)
2018-02-22 14:47:22 +08:00
### ??????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????????????????? cwnd=1????????????? 1 ??????<3F><>??????????? cwnd ?????????????????????????????2??4??8 ...
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????????????<3F><>??? cwnd ????????????? cwnd ????????????????<3F><>????????????????????????????????????????????????????????? ssthresh???? cwnd >= ssthresh ??????????????????????? cwnd ?? 1??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????????????? ssthresh = cwnd / 2???????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
### ??????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????????????<3F><>????????<3F><>???<3F><>???????????????<3F><>????????????????? M<sub>1</sub> ?? M<sub>2</sub>???????? M<sub>4</sub>?????????? M<sub>2</sub> ??????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????????????????????????????????????????<3F><>??????????????? M<sub>2</sub> ???? M<sub>3</sub> ??????????<3F><>??????????????????????<3F><>?
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????????????????????<3F><>?????????????????????<3F><>??????? ssthresh = cwnd / 2 ??cwnd = ssthresh?????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/b18d679b-c8e2-4564-88ee-7600090e46da.jpg)
2018-02-22 14:47:22 +08:00
# ?????? ??<3F><>?*
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## ?????? DNS
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????????? IP ?????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
### 1. ??<3F><>?
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????????????<3F><>?????????????????????????????????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/c2117f61-1177-4768-bf33-cf4f950d911c.png)
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/a4b162e5-db2a-4a27-b213-1fe481c5a06a.png)
2018-02-22 14:47:22 +08:00
????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**(1) ????????????**????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**(2) ??????????????**????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
**(3) ?????????????**?????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????????????????????????<3F><>?????????? b ???? abc.com ?<3F><>?????????????abc.com ?? y.abc.com
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/fc0c6b2d-68c7-4de8-aaaa-97355a4f0472.jpg)
2018-02-22 14:47:22 +08:00
??????????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/8b335d94-c1ca-42e1-ad48-bb179d28a4f1.jpg)
2018-02-22 14:47:22 +08:00
**(4) ??????????????**????????????????????????????????????????<3F><>
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
### 2. ????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????????????????????????<3F><>?????????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/6bc61bb8-3b1c-4dc8-ac25-cef925ace0eb.jpg)
2018-02-22 14:47:22 +08:00
## ???????<3F><>?? FTP
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
FTP ?????????? TCP????????????????????<3F><>? TCP ????????????????????????????????????????????????????????????????????????????????????????????? 21???????????????? 20??
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/58633775-8584-4a01-ad3f-eee4d9a466e1.jpg)
2018-02-22 14:47:22 +08:00
## ??????<3F><>?? TELNET
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
TELNET ?????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
TELNET ?????????????????????????????<3F><>?????????????<3F><>????<3F>^
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## ????? WWW
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?? HTTP ????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## ???????<3F><>??
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????????????????????????????????????????????<3F><>?????<3F><>?<3F><>???<3F><>???<3F><>?<3F>@?? SMTP?????<3F><>?<3F>@?? POP3 ?? IMAP??
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/de1e46d2-748f-4da3-a29e-7de7bc840366.jpg)
### POP3
2018-02-22 14:47:22 +08:00
POP3 ??????????????????????????????????????????
2018-02-20 10:40:05 +08:00
### IMAP
2018-02-22 14:47:22 +08:00
IMAP <20><>???<3F><>???????????????????????????????????????????????????????????????????IMAP ?????????????????????????????????????????IMAP <20><>???????????????????<3F><>?
2018-02-20 10:40:05 +08:00
### SMTP
2018-02-22 14:47:22 +08:00
SMTP ?????? ASCII ????????????????? MIME ?????????????????MIME ????<3F><>????????? SMTP???????????????????????????? ASCII ?????????
2018-02-20 10:40:05 +08:00
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/ed5522bb-3a60-481c-8654-43e7195a48fe.png)
2018-02-22 14:47:22 +08:00
## ???????????<3F><>?? DHCP
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
DHCP ??????<3F><>?????????????????????????????? IP ??????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
DHCP ?????????????? IP ??????????????????????<3F><>???? IP ????????????????? IP ?????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
??????????????? IP ??????????????? DHCP ??????????????????? 1???? 255.255.255.255:67???????????? 0???? 0.0.0.0:68????DHCP ??????????????????????? IP ???????????????????? DHCP ???????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## ?????? P2P
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????????????<3F><>??????????????????????????????????<3F><>?????<3F><>??????????????????????????????????????????<3F><>????????????????????????????<3F><>????<3F><>?????????????????????<3F><>????<3F><>
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
?????????????????????????????????????????????????????????????????????????????????????????????<3F><>????????<3F><>????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????????????????????????????????????????????????????????????<3F><>?????????????????<3F><>????????????????????????????<3F>Y????????????<3F><>??<3F><>?
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
???????????????????????????????????????????????????<3F><>???????????????????????<3F><>????????????????????????????<3F><>
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
????????????????????????????????????????????????????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
P2P ??????????????<3F><>?????<3F><>?????????????????<3F><>?????<3F><>? DHT?????????????<3F><>?????? IP ??????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## Web ??????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
1. ?? DNS ?????????? DNS ???????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
2. ??????? HTTP ???????????? TCP ?????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
3. ???????????????<3F><>?HTTP ?????????? TCP ?<3F><>?HTTP ???????????? 80??????????????????? 80 ?????????????????????????????????????????????????? TCP ????????????????????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
4. ???????????????<3F><>?TCP ????<3F><>?????? IP ?????<3F><>?IP ??????<3F><>??????????????
2018-02-21 17:16:09 +08:00
2018-02-22 14:47:22 +08:00
5. ????<3F><>??IP ?????????? MAC ??<3F><>?IP ????????? MAC ????????? ARP??
2018-02-21 17:16:09 +08:00
2018-02-22 14:47:22 +08:00
6. ???????? HTTP ???????????????<3F><>
2018-02-21 17:16:09 +08:00
2018-02-22 14:47:22 +08:00
7. ?????????? HTTP ??????????????????????<3F><>
2018-02-21 17:16:09 +08:00
2018-02-22 14:47:22 +08:00
8. ?????????????????????????????????????<3F><>
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
## ??????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
| ??<3F><>?<3F><>?? | ???? | ?????<3F><>?? |
2018-02-20 10:40:05 +08:00
| -- | -- | -- |
| DNS | 53 | UDP |
2018-02-22 14:47:22 +08:00
| FTP | ???????? 21?????????? 20 | TCP |
2018-02-20 10:40:05 +08:00
| TELNET | 23 | TCP |
| DHCP | 67 68 | UDP |
| HTTP | 80 | TCP |
| SMTP | 25 | TCP |
| POP3 | 110 | TCP |
| IMAP | 143 | TCP |
2018-02-22 14:47:22 +08:00
# ?<3F><>?????
2018-02-20 10:40:05 +08:00
2018-02-22 14:47:22 +08:00
- ????????? ?????
- ???????????????