网络编程四层模型

1.  TCP:用来检测网络传输中差错的传输控制协议  IP:负责对不同网路进行互联

2.  TCP/IP协议族:  HTTP:(Hypetext Transfer Protocol)  ARP(Address Resolution Protocol) IP->MAC dos攻击与此有关

3.  TCP/IP :面向流,有粘包现象。  UDP:面向包,不粘包。

4.  Socket:1)网络通信的抽象描述符  2)自动加头(OS帮忙)

5.  Socket是面向网卡的。

6.  inet_addr()将点分十进制的字符串转换为网络字节序二进制。  inet_ntoa()将网络字节二进制 -> 点分十进制

7.  SSH(安全shell协议)端口号:22  DNS(域名系统)端口号:53  http(超文本传输协议)端口号:80

8.  网络传输数据必须是网络字节序(大端字节序)  

    主机字节序->网络字节序 htons  网络字节序->主机字节序 ntohs

9.  宏定义只对第一行有效。

10.  服务器一定要桥接:绑定网卡。

11.  网络通信一定要有返回值。

12.  主动端ID(客户端)可bind也可不bind。操作系统自动绑定任意网卡。

13.  accept的返回值是接受到的客户端的socket fd。

14.  定义struct sockaddr_in 变量同时需要清空。

15.  inet addr:127.0.0.1  回环id(不出本机)

时间: 2024-10-27 03:24:50

网络编程四层模型的相关文章

0730------Linux网络编程----------服务器端模型(迭代,多进程,多线程,select,poll,epoll 等)

1.迭代服务器模型 1.1 迭代服务器是处理多个请求时一种最简单直接的思路,即使用while循环,它不具有并发能力,即必须一个一个的处理客户的请求. 1.2 程序示例. #include "def.h" int listenfd_init(); //返回一个处于监听状态的套接字描述符 void do_service(int peerfd); // 处理客户端的请求 int main(int argc, const char *argv[]) { if(signal(SIGPIPE, S

网络编程——IO模型介绍

网络编程--IO模型介绍 IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步.异步.阻塞.非阻塞. 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西.这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(cont

UNIX网络编程-Select模型学习

1.相关接口介绍 1.1 select ---------------------------------------------------------------------- #include <sys/select.h> #include <sys/time.h> int select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timeval *timeou

UNIX网络编程-Poll模型学习

1.相关接口介绍 1.1 poll ---------------------------------------------------------------------- #include <poll.h> int poll(struct pollfd *fdarray, unsigned long nfds, int timeout); 返回:准备好描述字的个数,0—超时,-1—出错. --------------------------------------------------

Unix网络编程-poll模型echo服务器

poll函数和select函数差不多.以下是一个简单的回显服务器 #include <iostream> using namespace std; #include <poll.h> #include <limits.h> #define OPEN_MAX 64 int main() { int i, maxi, listenfd, connfd, sockfd; int nready; ssize_t n; socklen_t clilen; struct pollf

C#网络编程技术FastSocket实战项目演练

一.FastSocket课程介绍 .NET框架虽然微软提供了socket通信的类库,但是还有很多事情要自己处理,比如TCP协议需要处理分包.组包.粘包.维护连接列表等,UDP协议需要处理丢包.乱序,而且对于多连接并发,还要自己处理多线程等等.本期分享课程阿笨给大家带来的是来源于github开源Socket通信中间件:FastSocket,目的就是把大家从繁琐的网络编程技术中彻底地解放和释放出来. 阿笨只想安安静静的学习下网络编程技术Socket后,将学习的成果直接灵活的运用到自己的实际项目中去.

Python网络编程(OSI模型、网络协议、TCP)

前言: 什么是网络? 网络是由节点和连线构成,表示诸多对象及其相互联系. 在数学上,网络是一种图,一般认为专指加权图. 网络除了数学定义外,还有具体的物理含义,即网络是从某种相同类 型的实际问题中抽象出来的模型 在计算机领域中,网络是信息传输.接收.共享的虚拟平台,通过它把各个点.面.体的信息联系到一起,从而实现这些资源的共享. 网络是人类发展史来最重要的发明,提高了科技和人类社会的发展. 在1999年之前,人们一般认为网络的结构都是随机的.但随着Barabasi和Watts在1999年分别发现

Unix网络编程中的五种I/O模型_转

转自:Unix网络编程中的的五种I/O模型 下面主要是把unp第六章介绍的五种I/O模型. 1. 阻塞I/O模型 例如UDP函数recvfrom的内核到应用层.应用层到内核的调用过程是这样的:首先把描述符.接受数据缓冲地址.大小传递给内核,但是如果此时 该与该套接口相应的缓冲区没有数据,这个时候就recvfrom就会卡(阻塞)在这里,知道数据到来的时候,再把数据拷贝到应用层,也就是传进来的地址空 间,如果没有数据到来,就会使该函数阻塞在那里,这就叫做阻塞I/O模型,如下图: 2. 非阻塞I/O模

Linux网络知识学习1---(基础知识:ISO/OSI七层模型和TCP/IP四层模型)

以下的内容和之后的几篇博客只是比较初级的介绍,想要深入学习的话建议看书<TCP/IP详解 卷1:协议> 1.ISO/OSI七层模型    下四层是为数据传输服务的,物理层是真正的传输数据的,数据链路层.网络层.传输层主要是写入对应数据的传输信息的        物理层:比特            设备之间的比特流的传输.物理接口.电气特性        数据链路层:帧            保存的最主要的信息是网卡的 mac 地址,mac 地址负责局域网通信的,发件人和收件人的mac 地址