一般人會認為「傳訊息」就是個Virtual Connection,很直接就傳到了,但其實會穿過很多層。
- Application layer
- Transport layer(填上TCP/UDP Header)
- NetWork layer(填上IP Header)
- Data link layer
- Physical network
網卡有媒體存(Media Access Control, MAC)位址,每個網卡都會獨一無二的MAC地址,網卡會用MAC地址來去跟Router申請IP回來用。 例如
00-18-F3-62-E6-58
廠商號碼-流水號
每個區域網卡都唯一識別
- 當內部區域網路的client需要IP時,就會去看router的
DHCP server
去要IP,如果router手上的IP沒有,就無法上網 - 配置的IP通常會有租借期(稱為lease time),在client的IP要過期以前,必須重新跟Server要IP。(當lease time到達50%,87.5%時就會重新去要)
在一些網路使用者很多的地區,IP租借其可能就很短(例如:咖啡店)
路由器會透過通訊閘道(gateway)
把封包丟出去或是把收到的封包分發給大家,通常會設在最後一後碼上。4 個位元組組成,用來定義與區別網路上各主機的位置。
在傳統TCP/IP術語中,網路裝置只分成兩種,一種為閘道器(gateway),另一種為主機(host)。閘道器能在網路間轉遞封包,但主機不能轉送封包。
Class A
:10.0.0.0 - 10.255.255.255(辦公室可能用Class A)Class B
:172.16.0.0 - 172.31.255.255Class C
:192.168.0.0 - 192.169.255.255(個人電腦可能用Class C)
系統的port通常在0~1023(因此盡量不要佔用這些port)
常用的PORT
- 80:HTTP
- 443:讓人可以使用SSL加密連線
- 22:ssh
常用的網路伺服器
- apache:會聽80或是443 port
- ngix:會聽80或是443 port
但是瀏覽器收到的response不會送到80 port,而是連線時他會自動決定要傳回到哪個port(可能是1023之後的),然後通訊閘道(gateway)收到封包後再幫忙傳過去。
瀏覽器會自動把request發到80和443,如果想要同時啟用兩個伺服器,就要自動換port。
當電腦收到一個domain(google.com)他會先去問host檔案,然後再出去問DNS。例如/etc/host
打開會看到
127.0.0.1 localhost
每個人身上都有公鑰與私鑰。當client和server連線時,就會拿自己的公鑰去去交換server的公鑰。當server要傳資料給client時,就會用client的公鑰去加密,然後client收到後就會用自己的私鑰去解鎖。
client�
- 會傳送檔案
- 會checksum檔案得出一組密碼A,然後在把他用自己的私鑰加密成密碼B
server收到後會
- 把「檔案」checksum得到一組密碼C
- 把密碼B用client�的公鑰去解碼成密碼A
- 對照密碼C和密碼A是否為同一組
一般來說,如果檔案沒有機密性,可以只用checksum確保檔案是安全的,沒有被路上加入一些木馬。
host www.google.com
ping 8.8.8.8
traceroute #查看資料經過多少router,通常不會超過30個
ifconfig 看網路資訊
netstat -ntulp | grep ssh #可以看ssh用什麼port