티스토리 뷰

컴퓨터 공학과 졸업/기본 개념2

소켓

심재철 2018. 8. 31. 16:05

소켓은 L5와 L4사이에 위치한다. 응용 프로그램이 다른 네트워크에 있는 다른 응용 프로그램과 통신을 하기 위해서는 소켓을 하나 생성하고 그 소켓에 아이피/포트 번호를 할당한 다음 데이터를 보내야 한다. 


소켓이란것은 쉽게 말해 벽에 있는 콘센트에 전원 플러그를 꽂아 전원을 공급 받는것과 똑같다. L5와 L4 사이에 소켓을 생성 해놓고 그 소켓에 전원 플러그를 연결한뒤 데이터를 전송해야 하는 것이다.


소켓은 연결 지향형, 비연결 지향형 2가지가 존재한다. 연결 지향형은 tcp전용으로 생성되는 소켓을 의미한다. 비 연결 지향형 소켓은 udp전용 소켓을 의미한다. udp 소켓의 경우 보내는 측에서 write를 2번 했으면 받는 측에서도 똑같이 2번 read를 해야 한다.


하지만 연결 지향형 소켓은 버퍼링을 하기 때문에 write횟수와 read횟수가 다를 수 있다.


소켓이라는 것은 소프트웨어적인 통신 접속점이라고 생각하면 된다. 예를들어 내가 지금 컴퓨터로 롤(응용프로그램)을 하고 있는데 이때 엄청 많은 통신이 발생한다. 이것도 결국엔 응용 프로그램 바로 밑에 달려 있는 소켓을 통해서 데이터가 오고 가고 있는 것이다.


클라이언트(연결을 요청하는쪽)는 소켓을 생성하고 connect() 함수를 호출하면, 서버와 tcp 3 way 핸드쉐이킹 과정을 시작 한다.

서버는 소켓을 만들고 listen 상태로 만들어 놓고 나서 accept를 하여 클라이언트의 요청을 받아들일수 있다. 

전화기로 비유 하자면 listen은 전화기에 전화가 걸려오게끔 수신 대기 상태로 만들어 놓은것을 의미하고 accept란 걸려온 전화를 받는 행위를 얘기한다. 네트워크상에서 전화를 받는 행위는 tcp 3 way 핸드쉐이킹 과정이라고 생각하면 된다.



'컴퓨터 공학과 졸업 > 기본 개념2' 카테고리의 다른 글

OSI 2 Layer(Data Link Layer)  (0) 2018.09.16
OSI 1 Layer(Physical Layer)  (0) 2018.09.16
네트워크 계층(Layer3)과 트랜스포트 계층의 관계(Layer4)  (0) 2018.08.31
OSI 7Layer  (0) 2018.08.29
이더넷  (0) 2018.08.27
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함