개발자의 logs
CS지식 - 최상위 프로토콜 : 메일 전송과 파일 공유 본문
https://book.naver.com/bookdb/book_detail.nhn?bid=21380986
TCP
- TCP는 두 컴퓨터 간에 데이터를 주고받는 신뢰성 있는 양방향 스트림을 제공한다.
- 인터넷 서비스와 애플리케이션은 TCP를 전송 메커니즘으로 사용하지만, 기능별로 특정한 자신만의 프로토콜을 갖는다.
https://developer.mozilla.org/ko/docs/Glossary/TCP
HTTP
- HTTP는 웹 브라우저와 서버에 사용되는 간단한 프로토콜이다.
- 사용자가 링크를 클릭하면 브라우저는 서버 80번 포트에대해 TCP/IP 연결을 열고 , 특정 페이지를 요청하는 짧은 메시지를 보낸다.
https://developer.mozilla.org/ko/docs/Web/HTTP
텔넷과 SSH: 원격 로그인
텔넷
- 텔넷을 사용하면 아마존에 접근할 수 있다.
- 텔넷은 다른 컴퓨터에 원격 로그인 세션을 설정하기 위한 TCP 서비스다.
- 일반적으로 23번 포트를 사용하지만 다른 포트도 쓴다.
- 텔넷은 마치 원격 컴퓨터에 직접 연결돼 있는 것처럼 접근 할 수 있다.
- 1. 텔넷은 클라이언트의 키 입력을 받아서 서버에 직접 입력된 것처럼 서버로 키 입력을 전달한다.
- 2. 그런 후 서버의 출력을 가로채서 클라이언트로 다시 보낸다.
- 3. 사용자가 적절한 권한이 있다면 텔넷을 통해 인터넷 상의 모든 컴퓨터를 로컬 네트워크에 있는 것처럼 사용할 수 있다.
텔넷은 아무런 보안 기능을 제공하지 않는다.
원격 시스템이 비밀번호 없이 로그인을 허용한다면 아무 정보도 요청받지 않고 로그인할 수 있다.
클라이언트에서 입력한 비밀번호를 변형없이 전송하기 때문에, 데이터를 관찰하는 누구라도 데이터(비밀번호)를 볼 수 있다.
텔넷은 보안기능이 없어서 보안이 중요하지 않는 특별한 상황을 제외하고는 이제 거의 사용하지 않는다.
SSH
SSH란?
SSH는 Secure Shell의 줄임말로, 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜.
- 텔넷에서 유래한 SSH는 양방향의 모든 트래픽을 암호한다. => 안전하게 정보교환이 가능해 널리 사용된다.
- 22번 포트를 사용한다.
SMTP : 단순 메일 전송 프로토콜
메일 서비스도 표면 아래에 몇 개의 계층이 있으며, 각 계층은 프로그램과 프로토콜로 작동된다.
SMTP에는 로컬에서 사용하기 곤란할 정도의 보안 제약이 있다. ( 다른사람이 보낸 것처럼 이메일을 사기칠 수 있다.)
SMTP는 종단 간 프로토콜이지만, TCP/IP 패킷은 출발지에서 목적지로 가는 도중 15~20개 게이트웨이를 통과한다.
메일 내용 사본을 만들 수 있으며, 메일 내용을 비공개로 유지하려면 출발지에서 암호화해야한다.
=> 내용을 암호화해도 수신자, 발신자의 정체가 숨겨지지는 않는다.
https://ko.wikipedia.org/wiki/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC_%ED%8C%A8%ED%82%B7
패킷(packet, 문화어: 파케트, 소포)은 정보 기술에서 패킷 방식의 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록이다.
IMAP
메일이 도착한 후, 메일을 읽는 과정에서는 일반적으로 IMAP 프로토콜이 사용된다.
IMAP을 사용하면 메일이 서버에 남아 있기 때문에 수신자가 여러 곳에서 메일에 접근할 수 있다.
P2P (peer-to-peer , 피어 투 피어)
<노스이스턴 대학의 숀패닝의 냅스터 이야기>
'현재 공유할 수 있는 음악 목록을 관리하는 중앙 디렉터리를 제공했지만, 음악 파일 자체는 사용자 컴퓨터에만 저장되어 있었다.
또한 파일이 전송될 때는 중앙 시스템을 통하지 않고 한 냅스터 사용자에서 다른 냅스터 사용자로 직접 전송됐다.'
=> 사용자에게서 사용자로
=> P2P 구조
- 대부분의 최신 파일 공유 서비스는 2001년에 브램 코언이 개발한 비트토렌트(BitTorrent) P2P 프로토콜을 사용한다.
- 비트토렌트는 영화와 TV 프로그램처럼 용량이 크고 인기 있는 파일 공유할 때 특히 유용하다.
=> 파일을 다운로드 하려는 각 사용자는 같은 파일을 다운로드하려는 다른 사람에게 본인의 파일 조각을 업로드해야하기 때문.
=> 저작권 침해 탐지에 걸리기 쉽다.
- 비트코인도 P2P 프로토콜을 사용한다.
'개발 공부지식 > *개발 공부*' 카테고리의 다른 글
socket.io(실시간채팅) source code (0) | 2022.06.26 |
---|---|
Node.js Google passport Code(구글 패스포트) (0) | 2022.06.26 |
CS 스터디 - 근거리 네트워크 이더넷 (0) | 2022.06.14 |
항해99 CS 스터디 - 모뎀 (0) | 2022.06.13 |
항해99 CS 스터디 - 네트워크의 기본 속성 (0) | 2022.06.13 |