라우터, TCP커넥션

유영·2023년 5월 2일
0

HTTP

목록 보기
6/22

1. 패킷이란?

인터넷 내에서 효율적인 라우팅을 위해 HTTP 메시지를 여러 조각으로 나누는데,
이 조각들을 패킷이라고 한다.



라우터란?

  • 둘 혹은 그 이상의 네트워크와 네트워크 간 데이터 전송을 위해 최적 경로를 설정해주며
    데이터를 해당 경로를 따라 한 통신망에서 다른 통신망으로 통신할 수 있도록 도와주는 인터넷 접속 장비이다.
  • 내부 네트워크와 외부 네트워크를 연결해주는 장치
  • 데이터들이 전송되는 경로(route)를 설정하는 장치(router)

라우팅 테이블(Routing Table)
목적지까지 갈 수 있는 모든 가능성있는 경로들 중에서 가장 효율적이라고 판단되는 경로 정보는 패킷을 전달할 때 바로 참고해서 사용할 수 있도록 따로 모아두는데 이 공간을 라우팅 테이블(Routing Table)이라고 한다.
라우터가 패킷을 어디로 전송할지 경로를 결정하는 방법은 라우팅 테이블을 참조하여 결정한다.
라우터(Router)는 패킷의 목적지와 목적지를 가려면 어느 인터페이스로 가야하는 지를 자신의 라우팅 테이블에 가지고 있고,
패킷의 목적지 주소를 라우팅 테이블과 비교하여 어느 라우터에게 넘겨줄 지를 판단하게 된다. 따라서 라우팅 프로토콜(Routing Protocol)의 가장 중요한 목적이 바로 라우팅 테이블 구성이다.

  • 라우팅 프로토콜(Routing Protocol): 라우터들끼리 경로 정보를 교환하는 프로토콜

라우팅 테이블 만드는 방법 (라우팅)
1.라우팅이란?
라우팅은 쉽게 말해 서로 다른 네트워크 대역에 있는 장치 간 통신을 할 때
최적의 경로를 통해 통신을 가능하게 해 주는 것을 말한다.
최적의 경로라 함은 주어진 데이터를 가장 짧거나 가장 빠른 시간 안에 전송할 수 있는 경로를 말한다.
2.정적 라우팅 - 관리자가 직접 설정하는 방법
입력된 라우팅 정보가 수정하기 전에는 이전의 값이 변하지 않고 고정된 값을 유지하며 라우팅 정보는 관리자가 수동으로 입력한다.네트워크의 규모가 크면 라우터의 숫자도 많아 입력해야 할 정보량도 증가하여
주로 규모가 작은 네트워크에서 정적 라우팅 기법을 사용한다.
네트워크 정보가 변경되면 그 내용을 모든 라우터에 일일이 업데이트해 주어야 한다.
3.동적 라우팅 - 라우팅 프로토콜로 라우팅 테이블을 만들어내는 방법
라우팅 정보를 인접한 다른 라우터들과 자동으로 교환하여 라우팅 테이블을 자동으로 작성한다.
정적 라우팅 기법과는 다르게 네트워크 규모가 커져도 자동으로 라우팅 테이블을 갱신하기 때문에
규모가 큰 네트워크에서 사용이 가능하다.
동적 라우팅 프로토콜 종류: RIP, BGP, OSPF
4.디폴트 라우팅
디폴트 라우터를 설정하여 라우팅 테이블에 등록되지 않은 주소를 갖는 패킷들은
디폴트로 지정된 경로로 전송되도록 한다.
5.라우팅 방법 참고
https://velog.io/@wlsdnjs156/CCNA-Routing
참고
https://velog.io/@wlsdnjs156/%EB%9D%BC%EC%9A%B0%ED%84%B0%EC%99%80-%EB%9D%BC%EC%9A%B0%ED%8C%85-%ED%85%8C%EC%9D%B4%EB%B8%94


2. TCP 란?

transmission control protocol (TCP), (TCP/IP)
전송 제어 프로토콜
인터넷을 이루는 핵심 프로토콜
네트워크의 정보 전달을 통제하는 프로토콜
IP(인터넷 프로토콜) 위에서 작동함

TCP는 인터넷 상의 컴퓨터들 사이에서 데이터들을 HTTP 메시지 형태로 보내기 위해서
IP(Internet Protocol)과 함께 사용되는 프로토콜이다.
TCP는 패킷을 추적관리 하고 IP는 데이터를 배달한다고 생각하면 된다.
그렇다면 어떻게 메시지가 TCP(Transmission Control Protocol, 전송 제어 프로토콜) 커넥션을 통하여 한 곳에서 다른 곳으로 옮겨갈까?

3. TCP / IP

우선 HTTP는 애플리케이션 계층 프로토콜이다.
HTTP는 네트워크 통신의 핵심적인 세부사항에 대해 신경쓰지 않는다.
신뢰성있고, 대중적인 인터넷 전송 프로토콜인 TCP/ IP에게 맡긴다.

그렇다면 TCP는 무엇을 제공할까?
1) 오류 없는 데이터 전송
2) 순서에 맞는 전달(데이터는 언제나 보낸 순서대로 도착하도록)
3) 조각나지 않는 데이터 스트림 (언제 어떤 크기로든 보내기가 가능하도록)

인터넷 자체가 전 세계 컴퓨터와 네트워크 장치들 사이에서 대중적으로 사용되는 TCP / IP에 기초한다.
TCP/ IP는 TCP와 IP가 층을 이루는 패킷교환 네트워크 프로토콜의 집합이다.
TCP/ IP는 각 네트워크와 하드웨어의 특성을 숨기고 어떤 종류의 컴퓨터나 네트워크든 서로 신뢰성있는 의사소통을 가능하게 해준다.
그리고, 일단 TCP 커넥현이 맺어지면 클라이언트와 서버 컴퓨터 간에 교환되는 메시지가 없어지거나 손상되거나 순서가 뒤바뀌어 수신되는 일은 없다.

4. HTTP 네트워크 프로토콜 스택

네트워크 개념상, HTTP 프로토콜은 TCP 위의 계층이다.
HTTP는 자신의 메시지 데이터를 전송하기 위해 TCP를 사용한다.
TCP는 IP 위의 계층이다.
그림으로 나타내면 다음과 같다.

5. 접속, IP주소, 포트번호

HTTP 클라이언트가 서버에 메시지 전송할 수 있게 되기 전에, IP(Internet Protocol)주소와 포트 번호를 사용하여 클라이언트와 서버 사이에 TCP/IP 커넥션을 맺어야 한다.

TCP에서는 서버 컴퓨터에 대한 주소와 그 서버에서 실행중인 프로그램이 사용중인 포트번호가 필요하다.

port(포트) : 인터넷 프로토콜 스위트의 전송 계층 프로토콜 중 하나
TCP 또는 UDP 프로토콜이 사용하는 가상의 논리적 통신 연결단
특별히 언급이 없다면 UDP 포트 보다는 TCP 포트를 가리키는 경우가 많다.
데이터를 주고받는 통로
0~1023: 잘 알려진 포트(well-known port)
1024~49151: 등록된 포트(regiested port)
49152~65535: 동적 포트(dynamic port)

6. HTTP 서버의 IP주소와 포트번호

HTTP 서버의 IP 주소와 포트 번호는 어떻게 알아낼까?
앞서 설명했었던 URL을 이용하여 알아낸다

URL은 리소스에 대한 주소이다.

URL은 그 리소스를 가지고 있는 장비에 대한 IP 주소를 알려줄 수 있다.

예시
1) "http://207.200.83.29:80/index.html"
2) "http://www.netscape.com:80/index.html"
3) "http://www.netscape.com/index.html"

위 예시에서 첫 번째 URL 주소는 IP주소 "207.200.83.29" 와 포트번호 "80"을 갖고있다.

두 번째 URL은 숫자로 된 IP 주소가 없는데, 이 IP주소 대신 글자로 된 도메인명 혹은 호스트명(www.netscape.com)을 갖고있다. 호스트명이란, IP 주소의 이해하기 쉬운 형태의 별명이라고 생각하면 된다.
호스트명은 DNS(도메인 이름 서비스, Domain Name Service) 라고 불리는 장치를 통하여 쉽게 IP로 변환이 가능하다.

마지막 URL은 포트번호가 없다. 포트번호가 빠진 것은 기본값인 80번이라고 보면 된다.
이후 IP주소와 포트번호를 이용하여 클라이언트는 TCP/IP로 쉽게 통신이 가능하다.

밑은 웹 브라우저가 어떻게 HTTP를 이용하여
멀리 떨어진 곳의 HTML 리소스를 사용자에게 보여주는지를 묘사한 것이다.

1) 웹 브라우저가 서버 URL에서 호스트명을 호출한다.
2) 웹 브라우저가 서버의 호스트 명을 IP로 변환한다.
3) 웹 브라우저가 URL에서 포트번호가 있을 경우, 이 포트번호를 추출한다.
4) 웹 브라우저가 웹 서버와 TCP커넥션을 맺는다.
5) 웹 브라우저가 서버에 HTTP 요청을 보낸다.
6) 서버가 웹 브라우저에 HTTP 응답을 돌려준다.
7) 커넥션이 닫히게 되면, 웹 브라우저는 웹 문서를 보여준다.

0개의 댓글