面向csdn編程,06-Linux網絡編程-網絡基礎(華清創客)

 2023-10-05 阅读 55 评论 0

摘要:文章目錄網絡分層Link Layer-網絡接口與物理層Internet-網絡層Transport Layer-傳輸層Application Layer-應用層TCP/IP協議通信模型封包/拆包TCP/IP網絡編程預備知識Socketsocket類型IP地址端口號字節序 網絡分層 Link Layer-網絡接口與物理層 MAC地址:48位 全球唯一&

文章目錄

  • 網絡分層
    • Link Layer-網絡接口與物理層
    • Internet-網絡層
    • Transport Layer-傳輸層
    • Application Layer-應用層
  • TCP/IP協議通信模型
    • 封包/拆包
    • TCP/IP網絡編程預備知識
      • Socket
        • socket類型
      • IP地址
      • 端口號
      • 字節序

網絡分層

Link Layer-網絡接口與物理層

  • MAC地址:48位 全球唯一,網絡設備身份標識
  • ARP/RARP
    ARP:IP地址–>MAC地址
    RARP:MAC地址->IP地址
    PPP協議:撥號協議(GPRS 3G 4G)

Internet-網絡層

IP:Internet Protocol(IPv4 IPv6)
ICMP:Internet控制管理協議,ping命令屬于ICMP
IGMP:Internet分組管理協議,廣播、組播

Transport Layer-傳輸層

TCP:Transfer control Protocol,面向連接的可靠傳輸
UDP:user Datagram protocol,無連接的不可靠傳輸
SCTP:是TCP的增強版,它能夠實現多主機、多鏈路的通信

Application Layer-應用層

HTTP/HTTPS
郵件收發協議:POP3(收)、SMTP(發)、IMTP(可接收郵件的一部分)
FTP
Telnet/SSH:遠程登錄

嵌入式相關:
NTP:網絡時鐘協議
SNMP:簡單網絡管理協議(實現對網絡設備集中式管理)
RTP/RTSP:用傳輸音視頻的協議(安防監控)

TCP/IP協議通信模型

封包/拆包

在這里插入圖片描述
app:data
transport:TCPhead data
Internet:IPhead TCPhead data
Link:以太網頭 IPhead TCPhead data CRC
或WIFI頭 IPhead TCPhead data CRC
CRC:Ethernet trail 4bytes(硬件產生和校驗,不需要軟件處理)
在這里插入圖片描述
app data:6-1460字節
Ethernet 一幀長度:64-1518字節
MTU:Max Transfer Unit 最大傳輸單元(和網絡類型相關,以太網MTU=1500)
MSS:Maxium Segment size和網絡類型 線路 系統相關,真正的用戶數據大小

TCP/IP網絡編程預備知識

Socket

  • 是一個編程接口
  • 是一種特殊的文件描述符
  • 代表網絡編程的一種資源
  • 并不限于TCP/IP
  • 面向連接
  • 無連接

socket類型

  • 流式套接字(SOCK_STREAM):唯一對應TCP
    提供面向連接、可靠的數據傳輸服務,數據無差錯、無重復的發送且按發送順序接收。內置流量控制,避免數據流淹沒慢的接收方。數據被看作是字節流,無長度限制。
  • 數據包套接字(SOCK_DGRAM):唯一對應UDP
    提供無連接服務。數據包以獨立數據包的形式被發送,不提供無差錯保證,數據可能丟失或重復,順序發送,可能亂序接收。
  • 原始套接字(SOCK_RAM):對應多個協議,發送穿透了傳輸層
    可以對較低層次協議如IP/ICMP直接訪問

IP地址

  • IP地址分為
    IPV4:32位整數表示
    IPV6:采用128位整數表示
    mobileIPv6:local IP(本地注冊的IP),roam IP(漫游IP)
  • 特殊IP地址:
    局域網IP:192.xxx.xxx.xxx 10.xxx.xxx.xxx
    廣播IP:xxx.xxx.xxx.255,255.255.255.255(全網廣播)
    組播IP:224.xxx.xxx.xxx~239.xxx.xxx.xxx

端口號

16位的數字(1-65535)
已用端口:1-1023(FTP:21 SSH:22 HTTP:80 HTTPS:469)
保留端口:1024-5000
可用端口:5000-65535
  • TCP端口和UDP端口相互獨立
    網絡里面的通信是由 IP地址+端口號 來決定的

字節序

字節序是指不同CPU訪問內存中多字節數據時,存在大小端問題
  • 面向csdn編程,小端:低對低,低端內存存放低端數據

  • 大端:低端內存存放高端數據
    一般來說
    X86/ARM:小端
    powerpc/mips,ARM作為路由器時,大端模式
    網絡傳輸的時候采用大端模式

  • 本地字節序、網絡字節序
    host to net
    u_long htonl(u_long hostlong);
    u_short htons(u_short short);

    net to host
    u_long ntohl(u_long hostlong);
    u_short ntohs(u_short short);

  • IP地址轉換函數:
    in_addr_t inet_addr(const char *cp);
    cp:點分形式的IP地址,結果是32位整數(內部包含了字節序的轉換,默認是網絡字節序模式)
    1、僅適用于IPv4
    2、error 是返回-1
    3、不能用于轉換255.255.255.255

    LINUX教程,int inet_pton(int af,const char *src,void *dst);
    af:地址協議族(AF_INTET / AF_INET6)
    src:點分形式的IP地址(IPV4)
    dst:轉換的結果

    1、適用于IPV4 IPV6
    2、可處理255.255.255.255


L6-D1

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/125107.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息