linux网络基础知识1

1、OSI系统七层模型:
物——物理层(双绞线,光纤)
数——数据链路层(数据的传输和错误检测)
网——网络层(为数据包选择路由器)
传——传输层(提供端对端的接口)
会——会话层(解除或建立与其他节点的联系)
表——表示层(数据的加密,代码转换)
应——应用层(文件传输、电子邮件,文件服务,虚拟终端)
2、IP四层模型
数据链路层——以太网帧协议
网络层——IP协议
传输层——TCP/UDP传输协议
应用层——ftp,http,ssh,telent
3、网络开发两种设计模式
C/S-cilent/service——协议选用灵活,可以缓冲数据,但对用户安全造成威胁,开发工作量大,调试困难
B/S-brower/service——跨平台,但只能用Http
4、以太网帧协议
以太网帧协议目的地址与源地址这里都指的是 MAC 地址由网卡决定,占6个字节。
类型标识符主要有IP、ARP、RARP
IP
ARP
其中:ARP数据查询格式——根据IP地址得到MAC地址:
ARP以太网帧头部中的前两个字段是以太网的MAC地址和源MAC地址,目的地址为全1的特殊地址是以太网广播地址。在ARP表项建立前,源主机只知道目的主机的IP地址,并不知道其MAC地址,所以在数据链路上,源主机只有通过广播的方式将ARP请求数据包发送出去,同一网段上的所有以太网接口都会接收到广播的数据包。
RARP
例子:
ARP查找MAC地址5、IP协议
IP协议版本:IP4|IP6——根服务器
生存时间:该字段用于设置一个“数据报可经过的路由器数量”的上限。发送方在初始发送时设定某个值(建议为64,、128或255),每台路由器再转发时都将其减一,当字段达到0时,该数据报被丢弃,并使用一个ICMP消息通知发送方。
协议:8位,TCP/UDP
32位源IP地址:数据发送端地址
32位目IP的地址:地址接收端地址
6、TCP协议
TCP协议TCP是TCP/IP体系中面向连接的运输层协议(流式传输协议),它提供全双工和可靠交付的服务。它采用许多机制来确保端到端结点之间的可靠数据传输,如采用序列号、确认重传、滑动窗口等。

7、UDP协议
UDP协议
UDP即用户数据报协议,它是一种无连接协议(无面向)的报式传输,因此不需要像TCP那样通过三次握手来建立一个连接。同时,一个UDP应用可同时作为应用的客户或服务器方。由于UDP协议并不需要建立一个明确的连接,因此建立UDP应用要比建立TCP应用简单得多。
它比TCP协议更为高效,也能更好地解决实时性的问题。如今,包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都使用UDP协议。
8、socket-套接字
Linux中的网络编程是通过socket接口来进行的。socket是一种特殊的I/O接口,它也是一种文件描述符。它是一种常用的进程之间通信机制,通过它不仅能实现本地机器上的进程之间的通信,而且通过网络能够在不同机器上的进程之间进行通信。

9、大小端模式
大端模式:数据高字节在地址低位,数据低字节在地址高位;与我们阅读一致。
小端模式:数据低字节在地址低位,数据高字节在地址低位。
大小端图示

案例:

#include <stdio.h>
#include <stdlib.h>

/*该工程主要是判断是否为大小端模式
 *
 * */

/*第一种方法:通过指针取地址,强转*/
void test01()
{
    int c = 0x1234;

    if(*(char *)&c==0x34)
    {
        printf("该机是大端模式\n");
    }
    else
    {
        printf("该机是小端模式\n");
    }
}

/*第二种方法:通过结构体进行判断大小端*/
typedef union
{
    char cl;
    int al;
}Arry;

void test02()
{
    Arry ar;
    ar.al = 0x1234;

    if(ar.cl == 0x34)
    {
        printf("该机是大端模式\n");
    }
    else
    {
        printf("该机是小端模式\n");
    }

}

int main()
{
    test01();
    test02();

    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章