통신의 기본 원리

Jan 08, 2024
통신의 기본 원리
 
통신은 하나의 장치에서 다른 장치로 데이터를 전달하는 과정이다.
통신은 패킷 스위칭 방식으로 전달이 되며, TCP 방식으로 응답한다.
기본적인 용어는 아래의 블로그에 정리했다.
 
 
 
 
 

1. 패킷 스위칭

notion image
패킷 스위칭은 인접한 장치들을 가까운 라우터에 연결하고, 라우터 간의 정보 전달을 통해 데이터를 전달하는 방식이다. 그림은 A, B, C 컴퓨터에서 abc 라는 데어터를 E 컴퓨터에 전달하는 과정을 그릴 것이다.
 

2. 세그먼트(Segment)

 
세그먼트는 분할, 쪼개는 것 이라는 뜻으로 데이터를 전송할 때 보내는 단위이다.
데이터가 세그먼트로 나눠지면 헤더와 바디 값을 가지게 된다.
 
notion image
 
헤더(Header)
메타데이터를 포함하는 부분. 헤더에는 다양한 정보가 포함될 수 있으며, 예를 들면 콘텐츠 유형, 인증 정보, 캐시 제어 등이 포함되어있다. 여기서는 순서를 표시했다.
 
바디(Body)
데이터의 실제 값으로 사용자에게 보여지는 값.
 
abc 의 값을 전송할 때 그림처럼 a b c 의 세그먼트로 나눠졌다고 가정한다.
 

3. 패킷(Packet), 프레임(Frame)

택배를 생각해보자. 아주 사이즈가 큰 물건을 택배로 보낸다고 생각했을 때, 물건을 조립할 수 있는 단위로 나눈다. 나눈 후 각 단위를 포장을 하고, 택배 상자에 넣는다. 택배 상자에는 보내는 사람과 받는 사람의 이름 주소가 포함되어 있다. 이 택배 상자가 패킷이다.
 
notion image
패킷도 동일하게 헤더와 바디로 구성되어 있다. 헤더는 발신자IP 와 수신자IP 와 포트가 표시되어 있다. IP 는 보내는 사람과 받는 사람의 주소이고, 포트는 받는 사람의 이름이라고 생각하면 될 것 같다.
바디는 세그먼트가 포함되어 있다.
 
프레임은 택배를 운반하는 택배 트럭이다. 패킷을 데이터 링크 계층에서 캡슐화 후 가장 가까운 라우터로 운반한다. 이렇게 가장 빠른 라우터를 경유하여 목적지에 도착한다.
 

4. 재조립

 
notion image
 
데이터가 라우터를 경유하여 목적지에 도착을 하게 되면, 수신한 컴퓨터는 해당 세그먼트를 재조립해야 한다. 재조립하기 위해 별도의 영역을 만들어 해당 정보를 보관하고, TCP 방식으로 발신자에게 응답을 보낸다. 이때 발신자 PC에서 확인 응답이 오지 않으면 3회 정도 반복하다 데이터를 파기한다.
응답이 완료되면 새로운 세그먼트를 다시 재전송한다. 이 과정을 반복해 모든 세그먼트를 재조립한다.
 

5. 요약

 
notion image
💡
BufferedReader 에서 readLine 를 통해 값을 읽으려면 BufferedWriter 에서 데이터를 보낼 때 마지막에 반드시 \n 이 포함되어 있어야 한다. 필수다.
 
Share article

{CODE-RYU};