728x90
socket
socket은 OS를 통해 네트워크 통신을 하는 표준 방법이다. 즉, 프로그래머에게 소켓은 네트워크로 데이터를 주고 받는데 사용하는 도구이다. 이 데이터는 L5(Session 계층)에서 전송된다. 그리고 L4의 구조를 결정하는 여러 종류의 소켓 타입이 있는데, 가장 보편적인 타입이 Stream socket과 Datagram socket이다.
Stream Socket
스트림 소켓은 신뢰성있는 양방향 통신을 제공한다. 즉, 한쪽에서 다른 한쪽으로의 연결을 초기화하고, 연결이 생성된 후에는 어느 쪽에서든지 다른 쪽으로 통신할 수 있다. 또한 보낸 내용이 실제로 도착했는지도 즉각적으로 확인할 수 있다. 이러한 Stream Socket은 TCP 표준 통신 프로토콜을 사용한다. 컴퓨터 네트워크에서 데이터는 보통 패킷이라는 단위로 전송되는데, TCP는 패킷이 오류없이 순서대로 도착하도록 설계되었다. 따라서 웹서버, 메일서버, 각 클라이언트 애플리케이션 모두는 TCP와 Stream Socket을 사용한다.
Datagram Socket
데이터그램 소켓의 연결은 단방향이고 신뢰할 수 없다. 또한 수신 측에서 데이터를 순서대로 받는다고 보장할 수도 없다. 이러한 데이터그램은 UDP(User Datagram Protocol)이라는 표준 프로토콜을 사용한다. 가볍고, 부하가 적고, 패킷 손실이 허용되기도 한다. 이러한 Datagram socket은 네트워크 게임이나 미디어 스트리밍에서 자주 사용된다.
728x90
'컴퓨터 사이언스 > Network' 카테고리의 다른 글
fork() 시스템 콜 (1) | 2023.11.21 |
---|---|
클라이언트의 시스템 콜(connect) (1) | 2023.11.21 |
서버의 시스템 콜(bind, listen, accept) (0) | 2023.11.21 |
HTTP version별 특징 (0) | 2023.11.21 |
proxy 서버 만들기 (0) | 2023.11.21 |