CS/cs50

[cs50] 라우터, TCP/IP

juyeong 2022. 5. 7. 09:01
반응형

라우터

인터넷은 한 장치에서 다른 장치로 정보를 보낼 수 있게 합니다. 그리고 인터넷에서 데이터를 쉽게 전송하도록 돕기 위해서 라우터가 사용됩니다. 라우터는 인터넷의 구성 요소로, 데이터를 다양한 네트워크로 보내줍니다. 라우터는 보낸 데이터가 올바른 목적지에 잘 도착할 수 있도록 보장하기 위해서 특정 명령어 집합을 따릅니다.

+패킷은 작은 데이터 단위,  라우터는 컴퓨터가 높은 확률로 데이터를 전달하도록 돕는다.

tcp는 데이터가 잘 전달될 수 있게 하는 프로토콜이다. 인터넷은 불안정하다. 라우터가 데이터를 버릴 때도 있고요.

그래서 데이터를 여러개로 나누고 데이터를 담은 봉투에 관련 정보를 적어줍니다. 

보내는 쪽이 웹인지, 서버인지, 메신저인지도 적고요. 받은 사람이 어떤 프로그램을 사용할지 알려줘야하니까요. 

 

 

라우팅 모델

인터넷에서, 인터넷에 연결된 모든 장치들은 다른 인터넷에 연결된 장치들과 통신할 수 있어야 합니다. 이러한 네트워크를 구성하기 위한 방법 중 하나는 <그림 1>과 같이 하는 것입니다. 이 네트워크상에 있는 모든 컴퓨터는 인터넷에 연결된 다른 모든 컴퓨터와 물리적으로 연결되어 있습니다.

그림 1

한 컴퓨터에서 다른 컴퓨터로 정보를 보낼 때, 정보를 곧장 목적지로 보내기 때문에, 이 모델을 이용하면 전송 속도가 빠릅니다. 그러나 이러한 모델은 비현실적으로 많은 물리적 연결이 필요할 것입니다. <그림 1>에서 인터넷에 6개의 컴퓨터만 있는데도 연결망이 복잡해 보입니다. 안터넷에 연결된 장치가 수백만, 수십억 개라면 서로 다른 모든 컴퓨터들을 연결한다는 것은 불가능에 가깝습니다.

대신에, 인터넷은 라우터를 씁니다. 라우터는 인터넷상의 장치들 사이에서 중재자 역할을 합니다. 모든 컴퓨터는 <그림 2>처럼 어떤 라우터 하나와 연결되어 있고, 각 라우터는 다른 라우터들과 연결되어 있습니다. 그렇기 때문에, 컴퓨터는 하나 이상의 라우터를 거쳐 데이터를 인터넷상의 다른 컴퓨터로 보낼 수 있습니다.

그림 2

이러한 방법으로 인터넷상의 모든 컴퓨터들은 다른 모든 컴퓨터들과 통신할 수 있습니다. 이때, 전송되는 데이터들은 '패킷'이라는 단위로 라우터를 통해 인터넷을 거쳐 보내집니다.각 라우터는 목적지 컴퓨터와 연결되어 있는 라우터 중에 목적지에 가까운 라우터로 패킷을 보냅니다.

 

 

라우팅 테이블

라우터는 각 데이터 패킷이 목적지 IP 주소에 따라 어디로 보내져야 하는지를 알 수 있도록 만들어져 있습니다. 이 정보들은 대체로 라우팅 테이블에 저장되어 있습니다. 라우터는 IP 주소의 앞 숫자들을 보고, 패킷을 어느 방향으로 보내야 할지를 판단합니다.

하지만, 라우터는 데이터 패킷이 목적지까지 도달하는 데 필요한 정확한 경로 정보를 갖고 있지 않아도 됩니다. 라우터는 그저 패킷을 목적지까지 한 단계 더 가까이 보내주고 나머지 일은 다음 라우터에게 맡깁니다. 또한 일반적으로 데이터가 인터넷의 한 지점에서 다른 지점으로 가기 위한 경로는 하나가 아닙니다. 라우터는 같은 목적지의 데이터 패킷들을 서로 다른 경로로 보냅니다.

 

 


 

TCP와 IP

컴퓨터들이 인터넷을 통해 통신하기 위해서는 통신을 어떻게 해야 하는지, 인터넷상의 한 지점에서 다른 지점으로 어떻게 데이터가 도달하는지 알려주는 표준 집합 혹은 프로토콜이 필요합니다. 프로토콜 없이는 수신 장치가 정보를 받게끔 보장하거나 받은 정보로 무엇을 해야 할 지 보장해줄 수 없습니다. 프로토콜에는 TCP로 알려진 전송 제어 프로토콜(Transmission Control Protocol)과 IP로 알려진 인터넷 프로토콜(Internet Protocol)입니다. 둘을 함께 써서 TCP/IP로 알려져 있습니다.

 

 

전송 제어 프로토콜

한 컴퓨터가 다른 컴퓨터로 데이터를 보낼 때 커다란 하나의 패킷을 작은 패킷들로 나누어 보내게 됩니다. 전송 제어 프로토콜(TCP) 데이터를 순서 있는 패킷들로 분해하는 일을 합니다. 패킷들이 같은 시간에, 같은 순서로 목적지에 도착한다는 보장이 없기 때문에 TCP는 각 패킷에 대해 순서에 맞게 번호를 매깁니다. 이러한 방법으로 수신 컴퓨터는 받은 패킷들을 올바른 순서로 재조립할 수 있게 됩니다.

패킷 번호를 할당하는 것 외에도, TCP는 데이터에 포트 번호를 할당합니다. 이 데이터가 어떤 유형의 인터넷 서비스에 사용되는지를 나타내기 위해서 입니다. 예를 들어, SMTP(이메일)는 25번 포트를 사용하지만 HTTP(일반 웹 검색)는 80번 포트를 사용합니다.

 

 

인터넷 프로토콜

인터넷 프로토콜(IP) 정보가 한 컴퓨터에서 다른 컴퓨터로 어떻게 전송되는지에 대한 규칙들을 모아놓은 것이라는 점을 상기해보세요. 인터넷 프로토콜은 연결된 라우터들의 망으로 만들어집니다. 라우터는 한 컴퓨터에서 다른 컴퓨터로 정보를 보내는 것을 도와주는 장치입니다. 송신 장치에서 목적지까지 가기 위해 데이터는 보통 여러 라우터들을 거쳐가야 합니다. 각 라우터는 최종 목적지까지 가기 위해 어느 방향으로 데이터를 보내야 하는지 알아낼 때 필요한 지시 정보들의 집합으로 만들어져 있습니다.

 

 

 

 

TCP/IP

인터넷이 통신하기 위한 과정을 요약하면, 인터넷을 통해 데이터를 받기 위해서 우선 데이터가 더 작은 패킷들로 분해되어야 하고, TCP는 각 패킷에 포트 번호와 패킷 번호를 매깁니다. IP가 패킷의 목적지를 알려주면 라우터들을 통해 데이터가 전송됩니다. 라우터들은 마침내 패킷을 목적지로 보내줄 것입니다.

반응형