TCP协议分成两个不同的协议:

1、网络传输中差错的传输控制协议TCP
2、专门负责对不同网络进行互联的互联网协议IP

网络体系结构概念:
网络体系结构即是指网络的层次结构和每层所使用协议的集合

OSI:(Open System Interconnect Reference Model)

ISO:国际标准化组织(International Standardization Organization)

TCP/IP:(传输控制/网络通讯协定:Transmission Control Protocol / Internet Protocol)



TCP/IP协议族
常用协议:




TCP/IP通信模型(图解)




数据封装与转发(图解)



数据打包和数据解包(图解):





TCP/IP结构



TCP/IP协议下的数据包:



TCP和UDP

TCP:面向连接、可靠(数据无误,无丢失,无失序、无重复,高可靠的数据传输)
UDP:无连接、不可靠(发送数据前,无需连接,高效率的数据传输)

TCP传输




UDP传输


端口号(用unsigned short表示)
*TCP和UDP端口号相对独立。

端口号分配:
保留端口:1-255
unix占用:256-1023
注册的端口:1024-5000
其他端口:5001-65535


套接字和端口:



网络通信三元:IP,端口,协议

字节序:
小端:所谓的小端模式,是指数据的高位保存在内存的高地址中,而数据的低位保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。
大端:所谓的大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放

图解字节序:



网络字节序(NBO-Network Byte Order)

网络上通用 Big Endian(大端),低字节先传输。
主机字节序(HBO-Host Byte Order)

................................................................................


Socket()简介:

1、是一个编程接口。
2、特殊的文件描述符(everything in Unix is a file)。
3、不局限于TCP/IP协议。
4、支持面向连接和无连接


分类:
1、流失套接字(SOCK_STREAM):提供可靠的、面向连接的通讯流,使用TCP协议。
2、数据报套接字(SOCK_DGRAM):无连接的服务,数据通过相互独立的报文传输,是无序的,使用UDP协议。
3、原始套接字(SOCK_RAW):允许使用IP协议、ICMP协议,用于新的网络协议测试。(*网络层)。

Socket()位置:




流程图


IP地址分类

 
A
  • 第一字节为网络地址,余下三位为主机地址。
  • 第一字节最高位为。
  • 范围:1.0.0.1 - 126.255.255.255。
  • 10.0.0.0 - 10.255.255.255私有地址,用于局域网。
  • 127.0.0.1 - 127.255.255.255是保留地址,用于循环测试
  • 0.0.0.0 - 0.255.255.255 保留地址,用于表示所有的IP地址

B
  • 第一、二字节为网络地址,其他两字节为主机地址。
  • 第一字节前两位为。
  • 范围:128.0.0.1 - 191.255.255.255

C
  • 前三个字节是网络地址,最后一个地址是主机地址。
  • 第一个字节的前三位为
  • 范围:192.0.0.1 - 223.255.255.255

D
  • 组播地址不区分网络地址和主机地址
  • 第一字节前4位为
  • 范围:224.0.0.1 - 239.255.255.255
  • 224.0.0.0 - 224.0.0.25保留地址

UNIX环境高级编程——网络基础概念的更多相关文章

  1. UNIX环境高级编程——网络编程常用函数及结构

    IP地址的转换 #include <arpa/inet.h>  int inet_aton(const char *strptr,                     struct i ...

  2. UNIX环境高级编程、 现代操作系统概念

    UNIX环境高级编程 现代操作系统概念 讲讲内存屏障

  3. (十三) [终篇] 一起学 Unix 环境高级编程 (APUE) 之 网络 IPC:套接字

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  4. Unix 环境高级编程 (APUE) 之 网络 IPC:套接字

    一起学 Unix 环境高级编程 (APUE) 之 网络 IPC:套接字 . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级 ...

  5. UNIX环境高级编程——TCP/IP网络编程 常用网络信息检索函数

    UNIX环境高级编程——TCP/IP网络编程   常用网络信息检索函数 gethostname()   getppername()   getsockname()   gethostbyname() ...

  6. unix环境高级编程基础知识之第二篇(3)

    看了unix环境高级编程第三章,把代码也都自己敲了一遍,另主要讲解了一些IO函数,read/write/fseek/fcntl:这里主要是c函数,比较容易,看多了就熟悉了.对fcntl函数讲解比较到位 ...

  7. Unix环境高级编程——守护进程记录总结(从基础到实现)

    一.概念及其特征 守护进程是系统中生存期较长的一种进程,常常在系统引导装入时启动,在系统关闭时终止,没有控制终端,在后台运行.守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程 ...

  8. 《UNIX环境高级编程(第3版)》

    <UNIX环境高级编程(第3版)> 基本信息 原书名:Advanced Programming in the UNIX Environment (3rd Edition) (Addison ...

  9. Unix 环境高级编程

    UNIX 环境高级编程 本书描述了UNIX系统的程序设计接口--系统调用接口和标准C库提供的很多函数. 与大多数操作系统一样,Unix为程序员运行提供了大量的服务--打开文件,读文件,启动一个新程序, ...

随机推荐

  1. HDU 4931 Happy Three Friends

    #include <cstdio> #include <algorithm> using namespace std; int p1,p2,a[6],T; int main() ...

  2. HDU 1001 Sum Problem

    /* 注意可以是负整数,而且在过程中会超过int,所以要用longlong */ #include <cstdio> int main() { long long n; while (sc ...

  3. USB设备在连接PC时的reset从何而来?

    近期在做烧写工具的优化工作,有一些关于USB的内容须要总结一下当中包含设备的初始化过程和枚举过程. 在枚举的过程中,设备会一直等PC端的状态,当等到reset命令时会对设备进行又一次枚举.可是这个re ...

  4. Linux新手笔记 ibus

    centos 6.4 32  笔记 一.安装gccyum install gcc    ======================================================== ...

  5. 如何查看程序被哪个版本编译器编译的linux-gcc

    如何查看程序被哪个版本编译器编译的linux-gcc http://bbs.csdn.net/topics/380000949 那是不可能的,除非你加入了调试信息,也就是编译的时候加入了-g参数,然后 ...

  6. struts2的坑以及tomcat的一些常识

    Struts2中坑 1:一个很简单的跳转,死活跳不过去,总是404,那这个时候可以把struts.xml这个配置文件用IE浏览器打开,如果能够正常打开,那么说明struts.xml文件本身没有语法错误 ...

  7. ThinkPHP第十天(_initialize方法,SESSION销毁,分组配置,include文件引入,JOIN用法)

    1.Action类中的_initialize()函数,先于任何自定义操作函数运行,可认为是控制器的前置操作.可用于检测用户是否登录等检测. 如果多个模块(Action)需要相同_initialize( ...

  8. python2.7_1.2_打印设备名和IPv4地址

    代码如下: # -*- coding: utf-8 -*- import socket def print_machine_info(): host_name = socket.gethostname ...

  9. Hadoop Hive sql语法详解

    Hadoop Hive sql语法详解 Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件 ...

  10. 深入探究VC —— 编译器cl.exe(2)

    这一章节介绍的全是VC编译器选项,option参数是cl.exe的编译选项,是cl.exe命令行参数中最复杂.也是最常用的.下面介绍一些常用的编译选项: 1.代码生成有关 这些选项将影响编译完成后生成 ...