IP주소, 패킷, 포트번호 이해하기

이성·2022년 5월 17일
0

HTTP

목록 보기
3/3

서킷 트레이싱(스위칭)

일반적인 통신을 할때는 A와 B가 있을때 A와 B 사이에 선을 깔아서 데이터를 흘려보내면 된다.

이렇게 데이터를 보냈을때 도착지에서 다이렉트하게 통신을 받을 수 있다.

이러한 통신방식을 서킷 스위칭(트레이싱)이라 한다.

서킷 트레이싱 방식의 단점은 선이 늘어나야하기 때문에 비용이 많이 들어간다.

패킷 스위칭

A,K,F가 B까지 ‘가나’,’다라',’마바’라는 데이터를 보낼때 모든 데이터 도착지까지 가는 라우터에 보낸다.

라우터는 B까지 가야할 최단거리의 라우터 또는 B를 찾는다.(이것을 패치 포워딩이라한다.)

모든 데이터가 B에 도착할때, 각각의 데이터들의 헤더(헤더에는 A,K,F가 데이터를 보낼때 각각의 정보(누가 보냈는지, 이 데이터를 몇번째로 보냈는지.)를 담는다.)를 통해 B에서는 데이터 재조립을 하여 온전한 데이터를 받게 된다.

패킷 스위칭의 장점은 선이 늘어날 필요가 없어서 비용이 적게들어간다.

이즘에서 다시 서킷스위칭의 단점이 나오는데, 데이터를 보냄에있어서 각 사용자들의 데이터 크기는 각기 다르다.

이 데이터를 패킷으로 나누지 않으면, 막대한양의 데이터를 A라는 사용자가 보내게되면, 그 다음으로 데이터를 보내는 사용자인 B, C가 wait가 걸리게 된다. 그리고 데이터의 도착지까지 선을 깔아야하는 비용이 계속해서 들어야 하기 때문에 비용문제가 상당하다.

하지만, 패킷스위칭으로 인해서 데이터를 분할하여 도착지에 보내게 되면, 모든 사용자들이 동시에 데이터를 보낼 수 있게 되지만, 각각의 데이터에 헤더가 필요하다. 왜냐하면 도착지에서 데이터를 패킷으로 받앗기 때문에(필자는 분할 하여 받았다고 이해했다.) 각각의 데이터를 조립할 수 있도록 설명하는 것이 헤더이기 때문이다.

현재 가장 많이 쓰이는 데이터 전송방식은 패킷 스위칭 방식이다.

IP

그럼 우리가 데이터를 보낼때 A는 어떻게 B를 알아볼까?

각각의 컴퓨터에 위의 그림과 같은 방식으로 각각의 번호를 2의 8제곱으로 0~42억 9천대 이하의 컴퓨터(0.0.0.0~255.255.255.255)가 있다는 가정하에 각각의 아이피번호를 정해준다.(IPv4 방식)

현재는 컴퓨터가 아닌 핸드폰이나 여러가지 기기들이 인터넷을 사용하기 때문에 IPv4방식이 아닌 IPv6방식으로 데이터를 전송한다.
(IPv5가 아닌 이유는 5는 테스트용이기 때문에 상용화는 짝수로 하기 때문이다.)

각각의 IP주소를 퍼블릭 IP, 공인 IP라고 한다.

포트번호

임의의 정수값, 간단히 말하면 도착지 컴퓨터에도 여러가지 통신을 하는 프로그램이 있을텐데 어떤 프로그램에 해당 데이터를 보내야 할지 알아보는 번호라고 생각하면 된다.

어떠한 방식으로 보내지게 되냐면 일단 포트번호라는 정수값은 2의 16제곱의 갯수로 가질 수 있는데(65536개) IP번호:포트번호 방식으로 달리게 된다.(엇? 120.0.0.1:8000 계발하보면 로컬 서버로 포트번호 8000번을 쓸때 이런식으로 나오는 이유는 내가 개발하는 프로그램이 8000번 포트로 연결되기때문에 저런 주소가 나오는구나를 다시한번 이해하게 된다.)

최종적으로는 IP주소:포트번호:(보낸이)데이터(패킷된 데이터번호) 이런식으로 헤더가 붙어서 날라가게 되는 형식이다.

단순한 예시지만 구글을 크롬브라우저를 통해 띠웠을때 개발자도구를 이용해서 이렇게 띠워보면 이렇게 설명한것 외에도 여러가지 헤더들이 있는 것을 볼 수 있다.

profile
대머리 덕후 개발자

0개의 댓글

관련 채용 정보