네트워크에서 통신하는 모든 개체들을 통틀어 '노드' 라고 표현한다. (클라이언트, 서버를 아우르는 개념)
쉽게 말해 '통신에 참여하는 모든 단말'을 뜻한다.
예를 들어보자.
네트워크 A에 컴퓨터 20대와 허브 2개 공유기 2개, 그리고 라우터가 있다면,
네트워크 A에 속한 장비들은 하나의 노드로 친다.
여기서 주의!!★ 헷갈리지 말아야 할 것이,
기기나 단말 하나를 독립적인 노드로 여기는 것이 아니라, 통신의 말단, 종단점을 노드로 여기기 때문에
하나의 노드 안에 다양한 장비들이 포함 될 수도 있다는 것이다.
그리고... 이 노드를 서로 연결하는 것이 '링크' 이다.
아무튼 네트워크 통신은 이와 같이 노드와 링크의 구조로 이루어진다.
오늘은 프로토콜과 포트에 대해 이야기하고자 한다.
이 노드와 링크로 이루어진 네트워크 구조에서,
구체적으로 어떤 방식으로 통신이 이루어지고 그 통신을 위해 필요한 조건과 규칙은 무엇이 있는지
조금 더 자세히 다뤄보자.
우리가 보통 대화라는 걸 할 때에는 말하는 화자가 있고 듣는 청자가 존재한다.
이와 같이 네트워크 통신에서는 주고, 받는 개체가 각각 존재한다.
주고 받는 행위는 무작위로 이루어지지 않고, 특정한 규칙을 따라 이루어진다.
그 규칙은 정책(policy)이라고도 하고 통신 규약이라고도 불리는데,
이를 '프로토콜(protocol)' 이라고 한다.
다시 말해, 프로토콜은 대화하는 규칙같은 것이다.
일반적으로 요청자의 입장을 클라이언트,
그 요청을 들어주는 응답자의 입장을 서버라고 칭하자.
이 client-server 통신을 위해서 필수적으로 IP (internet protocol) 가 필요하다.
그런데 만약 서버에서 여러개의 서비스가 돌아간다면 어떨까?
집 주소는 있는데 그 집이 쉐어하우스라면, 그 집에 사는 누구와 통신을 할 것인지 지정을 해주어야하지 않겠는가?
고로, 집 주소 뿐 아니라 어떤 서비스를 지정할 것인지 구분하는 것이 필요하다.
IP와 더불어 인터넷 통신에 필요한 것이 바로 오늘 이야기 할 '포트' 이다.
1. 프로토콜과 포트의 개념
프로토콜이란?
클라이언트와 서버 간에 공유되는 통신 규약으로, 각 프로토콜은 자체적인 통신 방식을 갖고 있다.
포트란?
포트는 각 프로토콜을 식별하는 데 사용되며, 서로 다른 포트 번호를 사용하여 각자의 서비스로 통신한다.
항구 번호라고도 하는 port는 기본 4자리가 상식이다.
2. 포트의 역할
- 포트의 역할 (1) : 다양한 통신을 가능하게 하는 문?!
포트는 클라이언트와 서버 간의 통신을 가능하게 하는 중요 조건이다.
클라이언트가 요청을 보낼 때, 서버의 IP 주소와 포트 번호를 명시함으로써 해당 서비스에 연결되기 때문이다.
나중에도 언급하겠지만, HTTP 프로토콜의 통신 시 request를 인식하는 단위는 ip와 포트일 정도로 포트는 단말의 ip만큼 통신 시 필수적인 요건이다.
포트는 서버가 다양한 서비스를 제공할 수 있도록 하고, 여러 개의 동시 다발적인 연결을 처리할 수 있도록 도와준다.
참고로 HTTP 서버는 주로 80번 혹은 8080번 포트를, HTTPS는 443번 포트를 사용한다. mySQL은 3306...
- 포트의 역할 (2) : 보안 측면
포트는 네트워크 보안에 중요한 요소로 작용한다.
필요한 서비스만 개방하여 서버를 악의적인 공격으로부터 보호하는 역할을 하기 때문이다.
3. 결론
결론적으로,
포트는 네트워크 통신에서 핵심적인 역할을 수행한다.
또한 서버의 다양한 서비스를 구분하고, 클라이언트-서버 간의 효율적인 통신을 가능하게 함으로써
네트워크 통신의 효율성과 안전성을 보장하는 요소라고 볼 수 있겠다.
'Server' 카테고리의 다른 글
MSA란? 개념 이해하기 / MA와 MSA 장단점 비교 (+CORS 에러) (0) | 2024.06.18 |
---|---|
[Server] 사용자 인증 방식 종류 / 쿠키,세션,토큰 방식 / 각 특징과 차이점 (feat. JWT토큰) (0) | 2024.02.08 |