리코딩 : 네트워크(Network)

네트워크(Network) - TCP 연결해제, ARP - 배운 내용 정리

BreezeBm 2021. 11. 16. 10:24

Photo by  Robynne Hu  on   Unsplash

1. TCP 연결해제

TCP 연결을 해제 할때에는 FIN과 ACK를 주고 받는다. 먼저 Close를 요청한 쪽이 Active Close이 되고 다른 한쪽은 Passive Closer가 된다. 연결 해제 순서는 다음과 같다. 

1. 출발지(클라이언트)가 연결을 종료하는 FIN 플래그를 전송한다.
2. 서버는 클라이언트의 요청(FIN)을 확인하고 ACK를 메세지로 보낸다. 이때 서버는 CLOSE_WAIT상태가 된다.
    그리고 나서 서버는데이터를 모두 보낼 때 까지, TIME_OUT이 된다.
3. 데이터 전송이 완료되고 통신이 끝이나면 연결이 종료되었다고 클라이언트에게 FIN 플래그를 전송한다.
4. 클라이언트는 응답을 확인하고 ACK를 보낸다. 
5. 서버는 클라이언트의 ACK를 받고 소켓 연결을 끊는다.
6. 클라이언트는 아직 서버로 부터 받지 않은 데이터가 있을 수 있기 때문에 일정 시간동안 세션을 남겨놓고 잉여 데이터를 기다리는 시간을 갖는다. TIME_WAIT상태 이다.

연결 해제는 연결과 다르게 4번 통신으로 이루어진다. 그래서 4-way HandShake라고 불린다.


2. ARP

주소를 가지고 통신을 할 때 목적지를 찾아갈 수 있도록 한다. 하지만 MAC주소와 IP주소 간에는 아무런 관계가 없다. MAC주소의 경우에는 하드웨어 생산 업체가 임의로 할당한 주소고, IP는 직접 할당하거나 DHCP를 통해 자동으로 할당 받는다. 실제로 통신은 IP 주소 기반으로 일어나고 MAC주소는 상대방의 주소를 자동으로 알아내 통신한다. 이 때 상대방의 MAC주소를 알기 위해 사용하는 프로토콜이 ARP(Address Resolution Protocol)이다.

 

ARP 브로드캐스트를 이용해서 네트워크 전체에 상대방의 MAC주소를 물어본다. ARP 브로드캐스트를 받은 목적지는 ARP프로토콜을 이용해서 자신의 MAC주소를 응답한다. MAC주소를 물어보기 위해 요청할때는 브로드캐스트이지만 ARP로 응답을 보낼 때는 출발과 도착이 정해진 유니캐스트 입니다

1. GARP (Gratutious ARP)

 APR프로토콜의 목적과는 다른 용도의 프로토콜이다. GARP의 경우에는 대상자 IP필드에 자신의 IP 주소를 넣어서 ARP요청을 보낸다. ARP는 상대방의 주소를 찾기위해 사용되지만, GARP의 경우에는 자신의 IP와 MAC주소를 알리기 위해서 사용된다

2. RARP (Reverse ARP)

RARP는 IP주소가 정해져 있지 않은 단말이 IP할당 요청을 할 때 사용된다. 나 자신의 MAC주소는 알고 있지만 IP가 아직 할당이 되지 않아서, IP를 할당해주는 서버에게 어떤 IP주소를 써야하는지 물어볼 때 사용된다.