해당 내용은 kocw 한양대학교 컴퓨터 네트워크 강의를 정리한 내용입니다.
강의 링크 - http://www.kocw.net/home/search/kemView.do?kemId=1169634&ar=relateCourse
1) 지난시간에대한 복습
Internet의 두 가지 중요한 전송 서비스 : TCP, UDP
TCP는 신뢰성있는 통신을 위해 사용된다.
Internet은 packet기반으로 통신한다 >> 사용자의 데이터가 packet단위로 묶여서 전송된다.
그리고 해당 packet은 router를 거쳐서 이동한다.
packet통신의 문제점 : Data가 몰리게 되면 queueing delay가 발생해서 느려진다. 또한, queue크기보다 더 많은 데이터가 몰리면 packet손실이 발생한다.
2) Network의 5계층
네트워크는 Application, transport, network, Link, Physical계층 순으로 총 5개의 계층으로 이루어져 있다.
그리고 각 계층별로 많은 protocol이 존재한다. 그 중 우리는 유명한 protocol들을 살펴볼 것이다.
Application
Application이라 하면, 우리가 코딩하고 나온 결과 프로그램을 이야기 한다. 해당 program을 실행하면 OS에 의해 process가 된다.
네트워크에서 이야기하는 Application은 network와 연결하는 기능이 있는 program (process)을 이야기 한다. (ex. chrome, IE, email...)
Client-server 구조
server : 고정된 IP주소를 가져야 한다. (IP : 각 컴퓨터의 인터넷 주소)
client : 주소가 고정될 필요가 없다.
client와 server와의 통신은 결국에는 client process와 server process들 사이의 통신이다 (IPC - Inter Process Communication)
Network를 거치지 않은 IPC는 OS가 System call을 이용해서 IPC를 구현해 놓았다. (Pipe명령어)
인터넷은 다른 컴퓨터 사이의 IPC이고, 네트워크를 이용해서 다른 process들과 통신을 한다. 그리고 이를위해서 Socket이란 interface를 만들어놓았다.
Socket통신
서로 다른 컴퓨터 process사이에 통신을 하려면 두 process들 간에 socket을 연결해야 한다.
socket을 연결하려면 먼저 해당 컴퓨터의 주소(IP address)와 해당 컴퓨터에서 어떤 프로그램인지 알아야 한다(Port 번호).
그래서 socket통신을 위해선 IP주소와 Port번호를 알아야 한다.
우리가 네이버에 접속 할 때도 네이버 서버 컴퓨터의 IP주소와 Port번호를 입력해야 되는데, www.naver.com을 입력하면 DNS(Domain Name Service)로 www.naver.com을 네이버의 IP주소로 바꾸어 준다.
Port번호도 입력하지 않으면 자동으로 80이 입력된다. (자동으로 80을 지정하지 않은면 DNS에서 Port번호도 변환 해 주어야 한다.)
계층의 역할
네트워크에서 계층의 역할은 하위계층(transport)이 상위계층에게 어떠한 서베스를 제공해 주는 역할을 한다.
Application << transport << newtork << link << phy
transport계층이 Application계층에게 지원해 줬으면 하는 기능
- Data Integrity - 데이터 무결성 : Data가 손실없이 안전하게 도착하는 기능
- Timing - 패킷이 시간내에 도달했으면 하는 기능
- Throughput - 해당 시간에 내가 원하는 양 만큼 전달되었으면 하는 기능
- Security - 안전하게 데이터가 전달되었으면 하는 기능
실제로는 여기서 1번 데이터 무결성만 transport계층에서 지원한다.
HTTP (Hypertext Transfer Protocol)
http는 하이퍼텍스트를 전달하는 protocol이다. (hypertext : 링크가 있는 텍스트)
http는 request, response로 이루어져 있다.
- request : 원하는 파일을 요청한다.
- response : 원하는 파일을 전송해 준다.
http의 특징
1. http는 TCP서비스를 이용한다. 그래서 통신을 하기 위해선 TCP connection을 이용해야 한다. (연결지향통신)
2. http는 stateless이다. http는 상대방이 데이터를 받을 수 있는지와 같은 상태를 기억하지 않는다. 그냥 전달하고 끝이다.
http의 연결
http는 연결방법에 따라 두 가지로 나뉜다.
- non-persistent http : Data전달 후 TCP연결을 끊는다.
- persistent http : Data가 전달된 후에도 TCP연결을 끊지 않는다.
- 만약에 10개의 사진이 있는 hypertext를 통신할 때
non persistent와 persistent
1. TCP connection을 맺는다.
2. http request를 요청한다.
3. 서버에서 response로 데이터를 보내준다.
4. TCP connection을 끊는다.
5. client에서 hypertext를 parsing한다.
6. (non persistent) 10개의 이미지가 있기 때문에, 1 ~ 5를 10번 반복한다.
6. (persistent) TCP연결이 되어있기 때문에, 2 ~ 3을 10번 반복한다.
그래서 현재는 persistent로 http를 구성한다.
'컴퓨터 네트워크' 카테고리의 다른 글
(컴퓨터네트워크) 6. TCP Header (0) | 2020.05.16 |
---|---|
(컴퓨터 네트워크) 5. Pipeline protocol (0) | 2020.05.16 |
(컴퓨터 네트워크) 4. Reliable Data Transfer (0) | 2020.05.11 |
(컴퓨터 네트워크) 3. Socket Programming (0) | 2020.04.27 |
(컴퓨터 네트워크) 1. Introduction (0) | 2020.04.08 |