当前位置:网站首页>網絡基礎(1)-----認識網絡
網絡基礎(1)-----認識網絡
2022-06-11 01:07:00 【梳碧湖的敲鍵人】
計算機網絡背景
網絡發展
1.獨立模式:計算機之間相互獨立。
2.網絡互聯:多臺計算機連接在一起,完成數據共享。
其中,A,B,C是不同的計算機,但是他們共有一個服務器,通過服務器進行數據共享。
3.局域網和廣域網
①:局域網(LAN):計算機數量多了,通過路由器和交換機連接起來,如下圖:
其中交換機的作用就是將服務器和客戶機連接起來,並且通過路由器與另外的服務器的交換機連接起來。(其實在現實生活中,交換機就是網線,通過網線將路由器連接起來)
②:廣域網(WAN):將遠隔千裏的計算機進行連接起來。
也就是不同的局域網(LAN)間的連接,如①中的局域網,不同地區的,通過路由器進行連接起來。
ip地址和端口號
1.ip地址:每臺計算機在網絡中的唯一編號。
但是在IP協議中,共有兩個版本的協議,分為Ipv4 和 Ipv6兩種。
- Ipv4:uint32_t類型的整數。就是可以代錶不到43億個地址。
其中:
①:DHCP-動態分配地址-誰上網給誰分配ip地址。
②:NAT-地址轉換技術,用於組件私網,私網內注意只用一個公網地址。 - Ipv6:uint8_t[16],他不會兼容Ipv4。他可代錶Ipv4的許多倍,意思為Ipv6可以創建出來更多的ip地址。
我們通常用點分十進制的方法去錶達ip地址,例如:192.169.1.2就是一個ip地址。
網絡中的每條數據都有兩個關鍵信息:源端ip地址,對端ip地址,描述一個數據從哪裏來,要到那裏去。
2.端口號:
①:概念:port,主機上的一個網絡通信進程的標志,錶示這個數據應該被主機上哪個進程處理。
②:數據類型:uint16_t類型數據。
③:注意:一個進程可以有多個端口,但是一個端口只能屬於一個進程。
④:這樣網絡中每條信息就有兩個關鍵信息:源端口號,對端口號。
一個完整的網絡通信中,每條數據應該有源端ip地址,源端口號,對端ip地址,對端口號。這樣在網絡通信中才知道這個數據是從哪裏來的,到哪裏去,並且被哪個進程去處理
MAC地址
- 用來識別數據鏈路層相鄰的兩個節點。
- 長度為48比特,及6個字節。一般用16進制數字加上冒號的形式來錶示(例如: 08:00:27:03:fb:19)
- 在網卡出廠時就確定了, 不能修改。mac地址通常是唯一的(虛擬機中的mac地址不是真實的mac地址, 可能會沖突; 也有些網卡支持用戶配置mac地址)
網絡的協議及模型
1.網絡的協議:
其實網絡和生活一樣,網絡的交流和人與人之間的交流一樣,他們都必須有協議的存在,就如同,人與人之間通過普通話交流,如果每個地區都說自己的語言,那麼交流就不能實現了,所以我們會將所有的話用相同的語言說出來,就如同網絡一樣,我們傳輸各種各樣的數據,我們怎麼知道這些數據是從哪裏來,傳到哪裏去呢,所以,我們是有協議的,通過協議,我們就能知道數據裏面的數據是幹啥呢,從哪來到哪去呢。例如:計算機的生產廠商有很多,計算機的操作系統,計算機硬件設備都有很多,他們之所以能共同的存在而不起沖突,就是因為協議的存在,他們都遵循網絡協議,這樣才使不同型號的裝置可以進行網絡交流。
2.協議分層:
①:網絡是複雜的,所以僅僅通過一個協議是無法完成網絡的交流操作的。所以國際的一些標准化組織,通過網絡通信環境中的不同的服務,將網絡的通信環境分成了多個層次,並且每個層次都有自己的協議標准。
②:OSI七層網絡模型如下:
但是,為了學習,我們一般使用的是TCP/IP五層模型。
③:TCP/IP五層網絡模型:
網絡傳輸的流程
在網絡的傳輸中,發送方是自上而下的封裝數據,而接收方是自下而上的解開一步步包裝,最後得到最終的數據,下面,我們用上面所屬的某些協議來模擬一下發送方與接收方的數據通信過程:
發送方通過每層的協議,來封裝這個數據,直到封裝到物理層,然後通過物理層進行數據傳輸,傳輸到接收方地址時,接收方由物理層開始往上,層層解開每層對應的協議,最終在應用層得到數據。
其中:注意的是,在物理層的傳輸過程中,會遇到路由器,因為我們是無法之間將數據通過物理層之間傳送給接收方,會在路由器上選擇路徑,但是在路由器的路徑選擇時,只向上到網絡層後,獲取到下一個地址,又向下封裝到物理層,然後繼續去進行數據的傳輸。
網絡字節序
1.字節序:cpu對內存中數據進行存取的順序。
①:內存存儲時,有高低地址之分,一塊空間的其實比特置就是底地址。
②:數據二進制:有高低比特,左邊是高比特,右邊是底比特。
例如:0x01020304 :其中,左邊是高比特,右邊是底比特。
所以由高到低排序為01,02,03,04(按字節排序)。
2.主機字節序分類:
大端:低地址存高比特。(內存低地址存儲數據的高比特比特)
小端:低地址存地比特。(內存高地址存儲數據的底比特比特)
例如:
字節序:以字節為單比特的順序。
所以對於字節序,它對於char類型不起作用,它只針對於數據類型的存儲單元大於一個字節的類型有效,例如:short,int,float,double以及等等,但是注意的是,對於數組類型的是按數組的的類型單個進行字節序排序,對於int arr[10],只需要考慮內部的單個int的字節序即可。
3.字節序對於網絡通信的影響:
問題:由於字節序取决於cpu,不同架構的cpu可能字節序不同,那麼如果不同的計算機使用了不同的cpu,並且這不同的cpu的字節序不同,那麼這兩個計算機進行網絡通信的時候那麼就會出錯。相同的數據傳送過來的值就有可能發生變化。
解决:因為主機字節序對於網絡通信的影響,因此在網絡通信中定義了網絡字節序標准:網絡通信中必須使用打斷字節序。
边栏推荐
- Datatemplate in WPF
- Detailed explanation of five types of load balancing principle scenarios
- NVIDIA Jetson之PWM风扇自定义控制
- CentOS实战部署redis
- 文件“Setup”不存在,怎么办?
- Deep copy and shallow copy in golang
- Why web development with golang
- "Past and present" of permission management
- About the log traffic monitoring and early warning small project | standardized return of interaction with the database in flask
- 手把手教你前后分离架构(五) 系统身份验证实现
猜你喜欢

Random points in non overlapping rectangles

Kubeflow 1.2.0 installation

About log traffic monitoring and early warning small project | database management tool: migrate

Pirate OJ 146 character string

Wechat applet to realize OCR scanning recognition

Complete uninstallation of MySQL under Linux

ZABBIX offline installation

The best creative drum tool: groove agent 5

【ROS入门教程】---- 01 ROS介绍

Google搜索为什么不能无限分页?
随机推荐
阿里云配置SLB(负载均衡)实例
QT thread and interface
Automated test series
MySQL
Centos7 actual deployment mysql8 (binary mode)
[论文阅读] FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence
Qt线程与界面
Fastdfs quick start
87.(leaflet之家)leaflet军事标绘-直线箭头修改
为什么使用 Golang 进行 Web 开发
如何保证消息的顺序性、消息不丢失、不被重复消费
手把手教你前后分离架构(五) 系统身份验证实现
System interpretation: Authority Design Guide
Logback log framework
【ROS入门教程】---- 03 ROS工作空间与功能包
OTA upgrade
ZABBIX offline installation
Unity points that are vulnerable to pit
The driver has not received any packets from the server
团队管理|如何提高技术Leader的思考技巧?