* Application Layer
- 연구목적을 위해서 Network는 처음에 탄생을 하였다. 이에 따라 Telnet기능과 FTP기능이 가장먼저 구현되었다.
ⓐ Telnet
> remote login, 원격접속, rlogin으로 불린다.
> 하나의 대형 컴퓨터의 에플리케이션을 나눠서 사용하기 위해서 탄생하였다.
ⓑ FTP
> File 전송 시스템
- OS의 일부로 telnet과 FTP기능을 제공해 주었으며, 부가 기능인 e-mail과 browser는 별도 구매해야 했다.
* FTP(File Transfer Protocol)
- FTP를 위해서 사용되는 TCP
> FTP Client가 FTP server에 연결하면, FTP server를 조정 할 수 있는 port 21번이 열린다.
> FTP Client가 FTP server에 데이터 송수신을 연결하면, port 20번을 열어서 데이터 이동을 한다.
(데이터 송수신이 없으면, port 20번은 연결되어 있지 않다.)
- FTP와 HTTP의 차이
> FTP의 경우에는 제어 연결 포트(21)과 데이터 연결 포트(20)을 사용한다.
평소 제어 연결 포트만 연결하고, 명령을 해석해 데이터 송수신이 일어날시 데이터 연결 포트(20)을 연결한다.
별도의 제어 연결을 사용하기 때문에 FTP는 out-of-band(대역외 전송)이라고 한다.
이와 다르게 HTTP의 경우는 데이터 송수신시 제어내용을 헤더를 이용하여 함께 보낸다.
데이터 연결 포트(20)을 이용하여 데이터 제어까지하는 HTML은 in-of-band(대역내 전송)이라고 한다.
* Electronic Mail
- mail server는 받은 mail의 수신자에 따라서 mail box에 넣어 주는 역할을 한다.
반대로 mail queue를 사용하여 보내는 mail을 잠시 보관해주는 역할도 한다.
- mail은 서버와 user의 소통이 아는 mail server를 통한 user와 user의 통신이다.
따라서 server와 user(Client)가 혼재한다.
- 그림에서 나왔듯이 mail server간은 SMTP를 이용하여 통신을 하고,
mail server와 user는 pop 또는 browser를 이용하여 통신을 한다.
ⓐ POP3 : ms사의 outlook과 같은 방법으로 IMAP or SMTP을 이용하여 메일 서버와 직접적으로 연결을 한다.
요즘 사용 빈도는 거의 없다.
ⓑ 웹기반 전자 메일(browser이용) : 요즘 사용되는 방식으로, HTTP를 통해 user와 mail server가 통신을 한다.
* DNS(Domain Name System)
- 직접적으로 user가 사용하는 application은 아니다. 그러나 모든 application은 DNS를 필요로 한다.
- DNS : Domain Name을 변경해주는 System으로 인터넷 계층 각각에 사용된다.
- IP의 주소를 기억하는데 어려움이 있다. 이를 사용자가 알기 쉽게 한것이 도메인 주소이다.
- IP 입장에서는 사람이 사용하는 Domain Address가 쓸데가 없다.
> DNS가 중간에 개입하여 도메인 주소를 IP주소로 변경해준다.
- 도메인 주소는 계층 구조를 가지고 있다.
- 도메인 네임의 구성
> 전세계 13개의 root로 나눠서 분산처리를 하고 있다.
> 도메인 네임은 잘 짜여진 계층 구조를 가지고 있다.
- DNS server 반응
> Top Level Domain server(TLD) : 최상위 레벨 도메인과 국가의 상위 레벨 도메인을 담당
> Authoritative Sever : Host name을 IP주소로 메핑을 하는 것을 담당.
ⓐ iterated query
ⓑ recursive query
- 처음보는 도메인 네임을 보낼때만 이런 방식을 통한다.
> DNS caching 에 의해서 이전에 접속했던 계층적 위치를 Local DNS server가 가지고 있다.
> 이에 따라 많은 과정이 생략되어 거의 local DNS server와만 통신을 해도 80%는 IP를 얻어 낼 수 있다.
- DNS 서버는 도메인과 IP메핑을 위환 자원 레코드(RR:resource record)를 저장한다.
> 자원 레코드는 다음과 같은 4개의 attribute가 하나의 tuple을 이룬다.
( Name, value, type, TTL) // schema
> TTL : 자원 레코드의 생존기간
> Type에 따라 Name과 value가 같는 값의 의미가 달라진다.
ⓐ Type A : Name은 호스트 이름 / Value는 호스트 이름의 IP주소
ⓑ Type NS : Name은 도메인 이름 / Value는 도메인 이름의 IP주소를 알고있는(메핑해주는) DNS server이름
ⓒ Type CNAME : Name은 별칭 호스트 이름 / Value은 Name에 대한 정식 호스트 이름이다.
ⓓ Type MX : Name은 별칭 호스트 이름 / Value는 Name에 대한 정식 메일 서비스 이름이다.
> DNS RR에 대한 query와 reply message의 포멧은 동일하다.
* P2P(Pear to Pear)
- client - sever모델과 다르게 p2p네트워크에 참여하는 노드는 client이자 sever이다.
- Napster로 부터 p2p가 시작되었다. 1세대 p2p로 file list와 해당 ip주소를 중앙 server에서 관리했다.
> 어떤 파일 정보를 요청하면, 파일 이름에 해당하는 ip주소 리스트를 받고,
어느 것이 가장 효율적인지 판단후 접속하는 방식이다. (하나의 컴퓨터에서 모두 다운)
- BitTorrent : 하나에서 모두 다운받는 방식을 분산해서 관리하는 방식이다.
> 파일을 작은 peer로 나눈후 Tracker(peer들의 정보를 관리하는 서버)에서 peer들의 IP정보를 받아온다.
> peer들의 정보를 하나로 모아서 하나의 파일로 다운을 받는다.
ⓐ seeder : 완전한 파일을 보유한 peer
ⓑ leecher : 파일의 일부만 보유한 peer
ex)
- 연구목적을 위해서 Network는 처음에 탄생을 하였다. 이에 따라 Telnet기능과 FTP기능이 가장먼저 구현되었다.
ⓐ Telnet
> remote login, 원격접속, rlogin으로 불린다.
> 하나의 대형 컴퓨터의 에플리케이션을 나눠서 사용하기 위해서 탄생하였다.
ⓑ FTP
> File 전송 시스템
- OS의 일부로 telnet과 FTP기능을 제공해 주었으며, 부가 기능인 e-mail과 browser는 별도 구매해야 했다.
* FTP(File Transfer Protocol)
- FTP를 위해서 사용되는 TCP
> FTP Client가 FTP server에 연결하면, FTP server를 조정 할 수 있는 port 21번이 열린다.
> FTP Client가 FTP server에 데이터 송수신을 연결하면, port 20번을 열어서 데이터 이동을 한다.
(데이터 송수신이 없으면, port 20번은 연결되어 있지 않다.)
- FTP와 HTTP의 차이
> FTP의 경우에는 제어 연결 포트(21)과 데이터 연결 포트(20)을 사용한다.
평소 제어 연결 포트만 연결하고, 명령을 해석해 데이터 송수신이 일어날시 데이터 연결 포트(20)을 연결한다.
별도의 제어 연결을 사용하기 때문에 FTP는 out-of-band(대역외 전송)이라고 한다.
이와 다르게 HTTP의 경우는 데이터 송수신시 제어내용을 헤더를 이용하여 함께 보낸다.
데이터 연결 포트(20)을 이용하여 데이터 제어까지하는 HTML은 in-of-band(대역내 전송)이라고 한다.
* Electronic Mail
- mail server는 받은 mail의 수신자에 따라서 mail box에 넣어 주는 역할을 한다.
반대로 mail queue를 사용하여 보내는 mail을 잠시 보관해주는 역할도 한다.
- mail은 서버와 user의 소통이 아는 mail server를 통한 user와 user의 통신이다.
따라서 server와 user(Client)가 혼재한다.
- 그림에서 나왔듯이 mail server간은 SMTP를 이용하여 통신을 하고,
mail server와 user는 pop 또는 browser를 이용하여 통신을 한다.
ⓐ POP3 : ms사의 outlook과 같은 방법으로 IMAP or SMTP을 이용하여 메일 서버와 직접적으로 연결을 한다.
요즘 사용 빈도는 거의 없다.
ⓑ 웹기반 전자 메일(browser이용) : 요즘 사용되는 방식으로, HTTP를 통해 user와 mail server가 통신을 한다.
* DNS(Domain Name System)
- 직접적으로 user가 사용하는 application은 아니다. 그러나 모든 application은 DNS를 필요로 한다.
- DNS : Domain Name을 변경해주는 System으로 인터넷 계층 각각에 사용된다.
- IP의 주소를 기억하는데 어려움이 있다. 이를 사용자가 알기 쉽게 한것이 도메인 주소이다.
- IP 입장에서는 사람이 사용하는 Domain Address가 쓸데가 없다.
> DNS가 중간에 개입하여 도메인 주소를 IP주소로 변경해준다.
- 도메인 주소는 계층 구조를 가지고 있다.
- 도메인 네임의 구성
> 전세계 13개의 root로 나눠서 분산처리를 하고 있다.
> 도메인 네임은 잘 짜여진 계층 구조를 가지고 있다.
- DNS server 반응
> Top Level Domain server(TLD) : 최상위 레벨 도메인과 국가의 상위 레벨 도메인을 담당
> Authoritative Sever : Host name을 IP주소로 메핑을 하는 것을 담당.
ⓐ iterated query
ⓑ recursive query
- 처음보는 도메인 네임을 보낼때만 이런 방식을 통한다.
> DNS caching 에 의해서 이전에 접속했던 계층적 위치를 Local DNS server가 가지고 있다.
> 이에 따라 많은 과정이 생략되어 거의 local DNS server와만 통신을 해도 80%는 IP를 얻어 낼 수 있다.
- DNS 서버는 도메인과 IP메핑을 위환 자원 레코드(RR:resource record)를 저장한다.
> 자원 레코드는 다음과 같은 4개의 attribute가 하나의 tuple을 이룬다.
( Name, value, type, TTL) // schema
> TTL : 자원 레코드의 생존기간
> Type에 따라 Name과 value가 같는 값의 의미가 달라진다.
ⓐ Type A : Name은 호스트 이름 / Value는 호스트 이름의 IP주소
ⓑ Type NS : Name은 도메인 이름 / Value는 도메인 이름의 IP주소를 알고있는(메핑해주는) DNS server이름
ⓒ Type CNAME : Name은 별칭 호스트 이름 / Value은 Name에 대한 정식 호스트 이름이다.
ⓓ Type MX : Name은 별칭 호스트 이름 / Value는 Name에 대한 정식 메일 서비스 이름이다.
> DNS RR에 대한 query와 reply message의 포멧은 동일하다.
* P2P(Pear to Pear)
- client - sever모델과 다르게 p2p네트워크에 참여하는 노드는 client이자 sever이다.
- Napster로 부터 p2p가 시작되었다. 1세대 p2p로 file list와 해당 ip주소를 중앙 server에서 관리했다.
> 어떤 파일 정보를 요청하면, 파일 이름에 해당하는 ip주소 리스트를 받고,
어느 것이 가장 효율적인지 판단후 접속하는 방식이다. (하나의 컴퓨터에서 모두 다운)
- BitTorrent : 하나에서 모두 다운받는 방식을 분산해서 관리하는 방식이다.
> 파일을 작은 peer로 나눈후 Tracker(peer들의 정보를 관리하는 서버)에서 peer들의 IP정보를 받아온다.
> peer들의 정보를 하나로 모아서 하나의 파일로 다운을 받는다.
ⓐ seeder : 완전한 파일을 보유한 peer
ⓑ leecher : 파일의 일부만 보유한 peer
ex)