目录 1.主机到网络层协议:以太网协议 2.IP协议 3.网际控制报文协议(ICMP) 4.传输控制协议(TCP) 5.用户数据报文协议(UDP) 6.流控制传输协议(SCTP) 7.地址解析协议(ARP)   联网的各个终端之间能否进行交互的软件基础是网络协议栈,目前主流的网络协议栈是TCP/IP协议栈. 1.主机到网络层协议:以太网协议 主机到网络层主要为IP协议和ARP协议提供服务.发送和接收网络数据报.本层中由于要实现跨网和跨设备的互通,有很多的实现方式,这里我们只关注以太网的实现方式.…
目录 1.HTTP协议 2.FTP协议 3.TELNET协议 4.NFS协议 1.HTTP协议 应用层协议HTTP协议是Web的核心.HTTP协议在Web的客户程序和服务器程序中得以实现,运行在不同系统上的客户程序和服务器程序通过交换HTTP消息彼此通信.HTTP协议定义数据格式,使得服务器和客户端通过协议进行数据交流. 客户端和服务器交流的基本内容:Web页面(web page,也称为文档). Web页面由多个对象构成,对象(object)是可由URL进行寻址的文件,例如HTML文件.JPG图…
TCP协议利用网络层IP协议提供不可靠的通信服务,解决分组的重传和排序问题,为应用程序提供可靠的.端到端的.面向连接的基于字节流的服务. 对等TCP传输实体间的通信具有如下特征: 全双工 只支持两个端口之间的通信,即只支持单一广播 基于字节流…
(1)函数socket /**************************************************************** ** 功能:创建一个套接字用于通信 ** 参数:domain 指定通信协议族 ** type 指定socket类型,流式套接字 SOCK_STREAM ** 数据报套接字 SOCKDGRAM ** 原始套接字 SOCKRAW ** protocol 协议类型 (习惯上填写0) ** 返回值:成功返回非负整数,它与文件描述符类似,我们把它称为…
  问题聚焦:     这节介绍的不仅是网络编程的几个API     更重要的是,探讨了Linux网络编程基础API与内核中TCP/IP协议族之间的关系.     这节主要介绍三个方面的内容:套接字(socket地址)API,socket基础API,和网络信息API. 套接字API 套接字socket:(ip, port),即IP地址和端口对,唯一地表示了使用该TCP通信的一端. 需要了解:主机字节序和网络字节序. 原因:考虑32位的机器,CPU的累加器一次装载4字节的内容.那么这4字节在内存中…
问题聚焦:     这节介绍的不仅是网络编程的几个API     更重要的是,探讨了Linux网络编程基础API与内核中TCP/IP协议族之间的关系.     这节主要介绍三个方面的内容:套接字(socket地址)API,socket基础API,和网络信息API. 套接字API 套接字socket:(ip, port),即IP地址和端口对,唯一地表示了使用该TCP通信的一端. 需要了解:主机字节序和网络字节序. 原因:考虑32位的机器,CPU的累加器一次装载4字节的内容.那么这4字节在内存中的顺…
第5章 Linux网络编程基础 5.1 socket地址与API 一.理解字节序 主机字节序一般为小端字节序.网络字节序一般为大端字节序.当格式化的数据在两台使用了不同字节序的主机之间直接传递时,接收端要根据自身采用的字节序决定是否对其接收到的数据进行转换. 在Linux上提供了4个函数来完成主机字节序和网络字节序之间的转换. #include<netinet/in.h> unsigned long int htonl(unsigned long int hostlong); unsigned…
第5章 Linux网络编程基础API 探讨Linux网络编程基础API与内核中TCP/IP协议族之间的关系,并未后续章节提供编程基础.从3个方面讨论Linux网络API. socket地址API.socket 最开始的含义是一个IP地址和端口对(ip, port).它唯一地表示了使用TCP通信的一端.本书称其为socket地址. socket基础API.socket的主要API都定义在 sys/socket.h 头文件中,包括创建socket.命名socket.监听socket.接受连接.发起连…
第五章 Linux网络编程基础api 1.主机字节序和网络字节序 字节序是指整数在内存中保存的顺序.字节序分为大端字节序.小端字节序. 大端字节序:一个整数的高位字节数据存放在内存的低地址处.低位字节存储在内存的高地址处.称为网络字节序. 小端字节序:指整数的高位字节序存储在内存的高地址处.低位字节则存储在内存的低地址处.称为主机字节序. 现代的PC大多数采用小端字节序.当两台使用不同字节序的主机之间进行数据传递时,要判断对方发送过来的数据是否满足当前机器的字节序,如果不满足,则进行数据的转换流…
在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必要进一步的了解,这就要我们了解网络通信层了,提到网络通信层不得不说起ISO-OSI的七层协议经典架构,如图所示: 上图的左边部分就是osi架构模型了, ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标…