티스토리 뷰

성공과 실패를 결정하는 1% 네트워크 원리 라는 책을 읽고 공부한 내용을 정리하며, 크게 소켓 부분과 TCP/IP 4계층으로 나누어 정리했다.

소켓

소켓의 구성요소

  • 자신의 IP, 자신의 Port
  • 소켓 디스크립터
  • 상대방의 IP, 상대방의 Port

소켓

  • 소켓은 통신용 제어정보이다.
  • 프로토콜 스택(네트워크 제어용 소프트웨어)은 소켓에 기록된 제어정보를 가지고 참조하여 동작한다.
  • TCP/IP 에서 각 단계에 따라 동작하는데, 이때 소켓의 제어정보를 참조하는 것

프로토콜스택

 

소켓의 작동 4단계

  1. 소켓을 작성한다.
  2. 연결(커넥션)한다.
  3. 데이터를 송수신한다.
  4. 연결을 끊고 소켓을 말소한다.

1. 소켓의 작성

  • 애플리케이션이 소켓 라이브러리를 이용하여 리졸버를 통해 IP 주소를 알아온다.
  • 프로토콜 스택에게 소켓작성을 의뢰하면 1개의 소켓을 만들어 디스크립터를 애플리케이션에게 알려준다.

2. 소켓의 연결

  • 서버와 클라이언트 간의 파이프를 연결하는 것이다.
  • TCP 의 경우 syn, ack, syn+ack 으로 3 handshake를 통해 연결을 확인한다.
  • UDP 의 경우 연결확인 절차가 없다.
  • 데이터를 송수신 하는 구조는 대칭으로 만들면 클라이언트나 서버여부에 상관없이 자유롭게 데이터 송,수신이 가능하다. 하지만 대칭으로 만들 수 없는 부분이 접속동작이다.

서버와 클라이언트의 차이

  • 서버는 연결을 대기하는 입장, 클라이언트는 연결을 요청하는 입장이 대다수 이다.
  • 서버는 대기소켓을 가지고 있다.
  • 클라이언트에서 연결을 요청하면, 서버는 대기소켓을 복제하여 연결에 사용할 소켓을 만든다.

3. 데이터 송수신

  • 데이터를 송수신한다.

4. 말소

  • TCP 의 경우 4 handshake를 연결을 끊는 동작을 하여 소켓을 말소한다.

TCP/IP 4계층

  • 기존 OSI 모델을 7계층으로 나뉘어져 있었다.
  • 이중에서 공통된 부분들을 묶어 TCP/IP 프로토콜을 사용하는 모델로 4계층으로 나누었다.

OSI & TCP/IP

 

layer 이동

 

  • 각 계층을 지나면서 해당되는 정보가 덧붙는다.
  • 캡슐화를 하여 데이터를 전송하고, 받는 곳에는 캡슐화된 정보를 각 계층에서 하나씩 떼어내면서 역캡슐화로 데이터를 수신하게 된다.
  • 각 단계를 거치며 데이터가 원하는 곳에 전송될 수 있게 정보가 덧붙게 되고, 그 정보에 맞게 데이터가 보내지게 된다.
  • 각 단계를 거칠수록 단계에 해당되는 정보를 가지고 패킷을 구성한다.
계층 역할 관련 개념
애플리케이션 계층 계층 모델 중 트렌스포트 이하에서는 전송을 담당하므로 데이터 전송을 제외한 영역을 애플리케이션 계층 HTTP, DNS
트랜스포트 계층 애플리케이션 계층에 데이터를 분류하여 전달하는 역할 TCP, UDP
인터넷 계층 데이터를 수신지 컴퓨터까지 전달하는 역할 IP
네트워크 계층 네트워크의 하드웨어를 제어하는 역할 MAC, 이더넷, LAN

애플리케이션 계층

  • 주소창의 프로토콜(https), 웹서버명(www.google.com), 디렉토리명(/index.html) 등으로 url을 해독한다
  • request header, request body 등으로 메서지를 구성한다.
  • http 를 사용할 경우 규약에 맞는 메소드 등이 포함되어 있다.
  • IP 주소를 찾아오기 위해 OS에서 소켓 라이브러리인 DNS 리졸버를 사용한다.

트랜스포트 계층

  • 포트번호를 가지고 데이터를 논리적으로 구분한다.
  • 유명하게 몇가지 정해진 포트번호가 있다.
포트번호 종류
22 SSH(TCP)
80 HTTP(TCP)
8080 tomcat
443 HTTPS(HTTP over TLS/SSL)
  • TCP 프로토콜을 사용할지, UDP 프로토콜을 사용할지에 따라 정보가 다르다.
  • TCP의 경우 3 handshake를 통해 연결을 확인한다.

인터넷 계층

  • IP 주소라는 식별자 정보로 구분한다.
  • IP주소에 해당하는 MAC 주소를 ARP를 사용하여 찾는다.
  • IP address는 네트워크부와 호스트부로 나뉘며 서브넷마스크로 구분한다.
  • IP address는 public address와 private address로 나뉜다.

네트워크 계층

  • MAC(Media Access Control) 어드레스는 네트워크 장비에 부여된 식별번호이다. 제조사가 제조 단계부터 붙여 전 세계의 네트워크 장비들이 서로 구분될 수 있게
    할당된다.
  • 네트워크 인터페이스 계층에서는 이더넷 헤드+트레일러 정보를 붙인다. 이것을 프레임이라고 한다. 데이터 정보에서 IP 어드레스는 최종 목적지가 설정되면 변경되지 않으나 MAC
    어드레스는 다음 장비의 어드레스로 교체된다.
  • 이더넷의 기본원리 : 전체에 패킷 신호를 뿌리고 수신처 MAC 주소에 해당하는 기기만 패킷을 수신한다.
  • 이더넷의 세가지 성질
  1. MAC 헤더의 수신처 MAC 주소에 기억된 상대에게 패킷을 전달
  2. 송신처 MAC 주소로 송신처를 나타낸 후
  3. 이더타입으로 패킷의 내용물을 나타냄

정리

  • 소켓에 저장된 제어정보를 참조하여 전반적인 통신이 이루어진다.
  • 소켓과 TCP/IP 각각의 단계들이 어떻게 연결되어 있는지 어려웠는데 그 둘이 서로 연관되어 작동하는 것이었다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함