728x90
728x90

tcp 4

C#] System.Net.Sockets 네임스페이스

### System.Net.Sockets 네임스페이스 네트워크에 대한 엑세스를 엄격하게 제어해야하는 개발자를 위해서Windows Socket(Winsock) 관련 인터페이스를 제공하는 네임스페이스.해당 네임스페이스 하위의 TcpClient, TcpListener 및 UdpClient 클래스는TCP/UDP 방식으로 인터넷에 연결하기 위한 자세한 정보를 캡슐화하여네트워크 서비스에 대한 클라이언트 연결 제공 및 클라이언트에서 연결을 수신하는 서비스를 제공함. ## NetworkStream 클래스 네트워크 액세스를 위한 내부 데이터 스트림 제공.NetworkStream을 만들려면 연결된 Socket을 제공해야 함.제공된 Socket에 대해 NetworkStream이 가지는 FileAccess 사용 권한을 정지할..

Network] TCP 상태 전이

TCP 상태 전이 연결 단계 : 3-way HandShaking 1. TCP는 종단 host 간의 논리적 접속을 설정하기 위해 3-way HandShaking 사용 Client->Server : TCP SYNClient->Server : TCP ACKServer->Client : TCP SYN ACK SYN : Synchornize Sequence NumbersACK : Acknowledgement 2. TCP 연결 과정을 상태 전이도 측면 #1 : Client는 Sserver에 접속 요청하는 SYN Packet을 보내고, Server의 응답을 기다리는 SYN_SENT 상태로 전이#2 : Server는 SYN 요청을 수신하고 Client에게 요청을 수락하는 ACK와 SYN 플래그가 설정된 Packet을 ..

Network] TCP 기반 클라이언트 프로그램 주요 함수

connect Function 서버와 통신을 위한 연결(세션)을 생성연결할 서버의 주소 정보를 설정해야 함 int connect(int sockfd, const struct sockaddr* addr, socklen_t addrlen);return 0(success), -1(fail) - sockfd : 서버에 연결 요청하기 위한 클라이언트 소켓 디스크립터- addr : 연결할 서버의 주소 정보가 설정된 구조체- addrlen : addr의 크기 read Function 전송된 메세지를 수신하기 위해 사용LINUX에서는 소켓이나 파일을 동일한 타입의 디스크립터로 정의하므로 데이터 수신할 때 사용 가능 ssize_t read(int fd, void* buf, size_t nbytes);성공 : 읽은 데이터..

Network] TCP 기반 서버 프로그램 주요 함수

bind Function listen function에서 사용할 server socket의 서버 주소 정보 설정서버 주소 정보를 두 번째 인자 addr을 통해 전달 가능 int bind(int sockfd, const struct sockaddr* addr, socklen_t addrlen);return 0(success) or 1(fail) - sockfd : 주소를 할당할 서버 소켓 디스크립터- addr : 서버 주소 정보를 담은 구조체(IP Address, Port Number, etc..) listen Function 클라이언트의 연결 요청을 수신하기 위한 서버 소켓 지정'연결 요청 대기 큐' 생성 int listen(int sockfd, int backlog);return 0(success) o..

728x90