1.1 웹은 HTTP로 나타낸다.
- 웹 브라우저는 웹 브라우저 주소 입력란에 지정된 URL에 의지해서 웹 서버로부터 리소스라고 불리는 파일 등의 정보를 얻고 있다.
- 서버에 의뢰를 하는 웹 브라우저 등을 클라이언트라고 부르고 클라이언트에서 서버까지 일련의 흐름을 결정하고 있는 것은 웹에서 HTTP라 불리는 프로토콜이다.
- 프로토콜이라는 의미는 “약속”이고 즉, 웹은 HTTP라는 약속을 사용한 통신으로 이루어져 있다.
1.3 네트워크의 기본은 TCP/IP
- 인터넷을 포함하여 일반적으로 사용하고 있는 네트워크는 TCP/IP라는 프로토콜에서 움직이고 있습니다. HTTP는 그 중 하나입니다.
1.3.1 TCP/IP는 프로토콜의 집합
- 컴퓨터와 네트워크 기기가 상호간에 통신하기 위해서는 서로 같은 방법으로 통신해야한다.
- TCP/IP에는 여러 가지가 있는데 케이블 규굑이랑 IP주소 지정 방법, 떨어진 상대를 찾기 위한 방법과 그 곳에 도달하는 순서, 그리고 웹을 표시하기 위한 순서등이다.
- 인터넷과 관련된 프로토콜들을 모은 것을 TCP/IP라고 부른다.
1.3.2 계층으로 관리하는 TCP/IP
- TCP/IP는 ‘애플리케이션 계층’ , ‘트랜스포트 계층’ , ‘네트워크 계층’ , ‘링크계층’ 이렇게 4계층으로 나뉘어 있다.
- 인터넷이 하나의 프로토콜로 되어 있다면 어디선가 사양이 변경되었을 때 전체를 바꾸지 않으면 안되지만, 계층화되어 있으면 사양이 변경된 해당 계층만 바꾸면 된다.
- 각 계층은 계층이 연결되어 있는 부분만 결정되어 있어, 각 계층의 내부는 자유롭게 설계할 수 있다.
- 계층화하면 설계를 편하게 할 수 있다. 애플리케이션 층에서 애플리케이션은 자기 자신이 담당하는 부분을 고려하면 되고, 상대가 어디에 있는지 어떠한 루트로 메시지를 전달하는지, 전달한 메시지가 확실히 전달되고 있는지 같은 고려는 하지 않아도 된다.
애플리케이션 계층
- 애플리케이션 계층은 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정하고 있다.
- TCP/IP에는 여러 가지의 공통 애플리케이션이 있다. Ex) FTP,DNS 등도 애플리케이션의 한 가지 이다. HTTP도 이 계층에 포함된다.
트랜스포트 계층
- 트랜스포트 계층은 애플리케이션 계층에 네트워크로 접속되어 있는 2대의 컴퓨터 사이의 데이터 흐름을 제공한다.
- 트랜스포트 계층에는 서로 다른 성질을 가진 TCP와 UDP 두 가지 프로토콜이 있다.
네트워크 계층
- 네트워크 계층은 네트워크 상에서 패킷의 이동을 다룬다.
- 패킷이란 전송하는 데이터의 최소 단위
- 네트워크 계층에서는 어떠한 경로를 거쳐 상대의 컴퓨터까지 패킷을 보낼지를 결정하기도 한다.
- 인터넷의 경우에는 상대 컴퓨터에 도덜하는 동안 여러대의 컴퓨터랑 네트워크 기기를 거쳐서 상대방에게 배송된다. 여러 가지 선택지 중에서 하나의 길을 결정하는 것이 네트워크 계층의 역할
링크 계층
- 네트워크에 접속하는 하드웨어적인 면을 다룬다. 운영체제가 하드웨어를 제거하기 때문에 디바이스 드라이버랑 네트워크 인터페이스 카드(NIC)를 포함한다.
- 케이블 등과 같이 물리적으로 보이는 부분도 포함한다. 하드웨어 측면은 모두 링크 계층의 역할이다.
1.3.3 TCP/IP 통신의 흐름
1.3.3 TCP/IP 통신의 흐름
- TCP/IP로 통신을 할 때 계층을 순서대로 거쳐 상대와 통신을 한다. 송신하는 측은 애플리케이션 계층으로부터 내려가고 수신하는 측은 애플리 케이션 계층으로 올라간다.
- HTTP를 예로 들어 설명하면
- 송신측 클라이언트의 애플리케이션 계층에서 어느 웹 페이지를 보고 싶다라는 HTTP 리퀘스트를 지시한다.
- 그 다음에 있는 트랜스포트 계층(TCP)에서는 애플리케이션 계층에서 받은 데이터를 통신하기 위해 쉽게 조각내어 안내 번호와 포트 번호를 붙여 네트워크 계층에 전달한다.
- 네트워크 계층(IP)에서는 MAC주소를 추가해서 링크 계층에 전달한다.
- 이로써 네트워크 통신 송신할 준비가 끝난다.
- 수신측 서버는 링크 계층에서 데이터를 받아들여 순서대로 위의 계층에 전달하여 애플리케이션 계층까지 도달한다.
- 애플리케이션 계층에 도달하게 되면 드디어 클라이언트가 발신했던 HTTP 리퀘스트 내용을 수신할 수 있다.
- 각 계층을 거칠 때는 반드시 헤더로 불려지는 해당 계층마다 해당 계층에 필요한 정보를 추가한다. 반대로 수신측 에서는 각 계층을 거칠 때마다 반드시 해당 계층마다 사용한 헤더를 삭제한다. 이것을 캡슐화 라고함.
1.4 HTTP와 관계가 깊은 프로토콜은 IP/TCP/DNS
- TCP/IP 중에서 HTTP와 관계가 깊은 IP,TCP,DNS 세개의를 보자
배송을 담당하는 IP
- IP는 계층으로 말하자면 네트워크 층에 해당된다. Internet Protocol이라는 과장된 이름이 지어져 있지만, 살제 이름 그대로 인터넷을 활용하는 거의 대부분의 시스템이 IP를 이용하고 있다.
- IP는 TCP/IP라는 명칭의 일부가 될 정도로 중요한 프로토콜이다.
- IP와 IP주소를 혼동하는 사람이 있는데 IP는 프로토콜의 명칭이다.
- IP의 역할은 개개의 패킷을 상대방에게 전달하는 것이다. 상대방에게 전달하기까지 여러 가지 요소가 필요한데, 이 중에도 IP 주소와 MAC 주소라는 요소가 중요하다.
- IP 주소는 각 노드에 부여된 주소를 가리키고 MAC 주소는 각네트워크 카드에 할당된 고유의 주소이다. IP 주소는 MAC 주소와 결부된다.
- IC주소는 변경 가능하지만 기본적으로 MAC주소는 할 수 없다.
- IP 주소는 각 노드에 부여된 주소를 가리키고 MAC 주소는 각네트워크 카드에 할당된 고유의 주소이다. IP 주소는 MAC 주소와 결부된다.
통신은 ARP를 이용하여 MAC 주소에서 한다
- IP 통신은 MAC 주소에 의존해서 통신을 한다. 인터넷에서 통신 상대가 같은 랜선 내에 있을 경우는 적어서 여러 대의 컴퓨터와 네트워크 기기를 중계해서 상대방에게 도착한다.
- 중계하는 동안 다음으로 중계할 곳의 MAC 주소를 사용하여 목적지를 찾아가는 것이다. 이때 ARP(Adrress Resolution Protocal)이라는 프로토콜이 사용된다.
- ARP는 주소를 해결하기 위한 프로토콜 중 하나인데, 수신지의 IP주소를 바탕으로 MAC 주소를 조사할 수 있다.
1.4.2 신뢰성을 담당하는 TCP
TCP는 트랜스포트 계층에 해당하는데, 신뢰성 있는 바이트 스트림 서비스를 제공한다.
- 바이 스트림 서비스란 용량이 큰 데이터를 보내기 쉽게 TCP 세그먼트라고 불리는 단위 패킷으로 작게 분해하여 관리하는 것을 말함.
- 신뢰성 있는 서비스는 상대방에게 보내는 서비스를 의미함.
TCP는 대용량의 데이터를 보내기 쉽게 작게 분해하여 상대에게 보내고 도착했는지 확인하는 열할을 담당한다.
TCP는 상대에게 확실하게 데이터를 전달하기 위해 3Way Handshaking 이라는 방법을 사용하고 있다.
3Way-Handshaking: 패킷을 보내고 나서 바로 끝내는 것이 아닌, 보내졌는지 여부를 상대에게 확인하러 간다. ‘SYN’와’ACK’라는 TCP 플래그를 사용한다.
- 송신측에서는 최소’SYN’플래그로 상대에게 접속함과 동시에 패킷을 보낸다.
- 수신측에서는 ‘SYN/ACK’플래그로 상대에게 접속함과 동시에 패킷을 수신한 사실을 전한다.
- 송신측이 ‘ACK’플래그를 보내 패킷 교환이 완료되었음을 전달한다.
이 과정에서 어디선가 통신이 도중에 끊어지면 TCP는 그와 동시에 같은 수순으로 패킷을 재전송한다.
1.5 이름 해결을 담당하는 DNS
DNS(Domain Name System)는 HTTP와 같이 응용 계층 시스템에서 도메인 이름과 IP 주소 이름 확인을 제공합니다. 컴퓨터는 IP 주소와는 별도로 호스트 이름과 도메인 이름을 붙일 수 있다.
사용자는 홈페이지에 접속할때 IP주소가 아닌 URL을 입력하는데 컴퓨터는 숫자에 친숙하기 때문에 DNS가 있는것이다.
송신측에서 DNS에 URL을 넘겨주면 DNS는 IP주소를 넘겨준다.
1.7 URI와 URL
URL:웹브라우저 등으로 웹 페이지를 표시하기 위해 입력하는 주소가 URL
1.7.1 URI는 리소스 식별자
URI(Uniform Resource Identifirers)의 약자 URI가 더 넓은 의미를 뜻함
'Study > 네트워크' 카테고리의 다른 글
🔑대칭키 VS 공개키 (기본개념,비교) (0) | 2023.03.24 |
---|---|
OSI 7Layer / OSI7계층 개념 및 역할 (1) | 2022.10.13 |
HTTP 메시지와 엔터디 (0) | 2022.09.15 |