Backend/Network 29

SSH

SSH (Secure Socket Shell) SSH는 터미널에 접속할 때 암호화 기능을 제공하여 보다 안전하게 데이터를 사용할 수 있도록 해주는 프로토콜이다. 보통 Xshell, putty 등을 이용해서 터미널에 접속하는데, 이런 툴들은 모두 SSH를 지원한다. 아래 그림은 패킷 덤프를 떴을때 나오는 SSH 패킷의 일부이다. SSH는 TCP 위에서 동작하며, 기본 22번 포트를 사용한다. (물론 변경도 가능하다.) 패킷의 형식은 위에서 보면 알 수 있는데, 처음 4바이트는 패킷의 길이, 그리고 1바이트 패딩 길이, 그 뒤에 패이로드가 존재한다. SSH에서는 기본적으로 데이터 암호화, 무결성 그리고 데이터 압축을 지원한다. 처음 SSH 핸드셰이크 할 때는 이러한 기본적인 정보에 대해서 주고받는데, 항목은..

Backend/Network 2012.04.12

패킷 송 수신 처리

패킷 수신 처리 1. 프로세서에서 소켓으로부터 데이터를 읽기 위해 데이터가 들어올 때까지 기다림 2. NIC에 패킷이 들어오면 인터럽트 (하드웨어 인터럽트) 요청 3. 커널은 실행하던 일을 일시 중단하고 인터럽트 요청에 해당하는 핸들러를 실행한다. 이때, NIC 디바이스 드라이버의 인터럽트 핸들러가 실행된다. 4. 인터럽트 핸들러는 NIC로부터 패킷을 가져와서 수신된 패킷을 처리하는 소프트 인터럽트 핸들러를 실행하도록 요청한다. 5. 소프트 인터럽트 핸들러에서는 수신 패킷의 헤더를 해석하여 해더 정보에 해당하는 프로토콜 층을 호출한다. 수신 함수에서는 헤더를 해석하여 목적한 소켓에 패킷을 보낸다. 만약 그 소켓에 대기하고 있는 프로세스가 있으면 대기하는 프로세스(1번)을 실행시킨다. 6. 프로레스는 소켓..

Backend/Network 2012.04.12

IPv6 헤더 구조

IPv6 헤더 구조 Version Traffic Class Flow Level Payload Length Next Header Hop Limit Source Address Destination Address Version : 4비트 IP 버전 (6) Traffic Class : 8비트 traffic class 필드 Flow level : 20 비트 flow level Payload Length : 16비트 unsinged integer. IPv6 페이로드 길이 (이 IPv6헤더 뒤로 따라오는 모든 패킷의 길이. extension header 역시 페이로드의 부분으로 간주 Next Header : 8비트 식별자. IPv6헤더 바로 뒤에 따라오는 헤더의 타입이다.(IPv4 필드와 동일하게 사용) Hop Li..

Backend/Network 2012.04.12

ICMP

ICMP (Internet Control Message Protocol): 인터넷 제어 메시지 프로토콜 ICMP는 IP layer의 한 부분으로 에러나 주의가 요구되는 상태 등을 전송하는 역할을 하며. ICMP 메시지는 IP 계층이나 그보다 높은 계층(TCP, UDP 등)에 의해 호출된다. ICMP 메시지는 다음 그림처럼 IP 데이터그램 안에 포함되어 전송된다. (메시지는 TCP/UDP 계층에서 처리) IP Datagram IP Header (20 Bytes) ICMP Message ICMP는 RFC 792번에 정의되어 있다. 다음은 ICMP메시지의 구조를 그림으로 나타낸 것이다. Type (8 - bit) Code (8 - bit) Checksum (16 - bit) 이 세 필드 뒤에는 타입과 코드에 ..

Backend/Network 2012.04.12

TLS 프로토콜 정리.

•SSL (Socket Secure Layer) –배경 : 1993년 웹에서 안전한 통신을 위해 Netscape社에 의해 개발 –특징 : 세션계층에서 적용되며, 응용계층의 FTP, TELNET, HTTP등의 프로토콜의 안전성 보장 –기능: 서버 인증, 클라이언트 인증, 기밀성 보장 –현황 및 전망 : 현재 많은 전자 쇼핑몰 업체에서 채택, 운영 •TLS (Transport Layer Security) –배경 : SSL 3.0 이 표준화된 이후 IETF는 1996년 6월부터 TLS 프로토콜에 대한 표준화 (SSLv3.1) –Backward compatible with SSLv3 –특징 : SSL 3.0을 기반으로 한 업그레이드 프로토콜 –현황 및 전망 : 현재 TLS 1.0이 발표, 지속적 개발 예상 TL..

Backend/Network 2012.04.12

OSI MODEL

OSI Model (OSI 7 Layer) 지난 포스팅에 간단히 기술했었는데, 오늘 보다가 다시 정리. OSI(Open Systems Interconnection) Model은 총 7계층이며, 각 계층의 기능은 다음과 같다. 1. Physical (물리적 계층) 말 그대로 물리적인 계층을 의미한다. 이 물리적 계층에서는 데이터를 물리적인 매개체를 이용하여 (예 케이블, 허브 등) 다른 시스템으로 전송한다. 비트 스트림을 다루는 계층으로 서킷 교환, 패킷 교환 등의 방식을 통해 데이터를 주고받는다. 이 계층에서 사용되는 프로토콜은 주로 기계적 구조나 배치 등을 명시하고 있으며 다음과 같은 프로토콜이 물리적 계층에 속한다. - EIA/TIA, HSSL, SONET, SCSI 등등.. 2. Data Link ..

Backend/Network 2012.04.12

NAT

NAT (Network Addres Translation) NAT은 말 그대로 네트워크상에서 주소를 변환하는 방법 (또는 시스템)을 의미한다. 우리가 사용하는 IP는 공인 IP, 사설 IP 등이 있는데, 보통 사내망에서는 사설 IP를 사용하고, 외부로 나갈 때 공인 IP로 빠져나가게 된다. 그런데 이런 일이 자동적으로 이루어 질리는 없을테고.. 바로 이 때 사용하는 것이 NAT이다. 일반적으로 회사에서는 사설 IP를 하나 또는 그 이상의 공인 IP로 사상(매핑) 시켜 패킷을 내보낸다. 그래서 외부에서 봤을 때는 사용자의 Source IP가 사설 IP가 아닌 공인 IP로 보이게 되는 것이다. 따라서 외부에서 이 공인 IP로 응답할 때에도, NAT은 이 공인 IP를 다시 원래의 사설 IP로 변환하여 내부 사..

Backend/Network 2012.04.12

서브넷

네트워크 책이나 인터넷에서 네트워크 관련 검색을 하다 보면,, 200.222.11.11/24 192.158.22.1/22 등등등 IP에 알수없는 / 숫자 같은게 나타나곤 한다. 물론 네트워크 책에 다 나와있긴 하지만 무슨 말인지 알아듣기 힘들어서 -_- 정리... 우선 서브넷에대한 정의.. 서브넷은 한정된 IP를 효과적으로 사용하기 위해, 그리고 한 기관에서 네트워크를 여러 개로 분리해서 사용하기 위해 만들어진 방법이다. 그리고 서브넷 마스크.. 어떠한 패킷이 유입되면, 그 패킷의 서브넷을 통해 다시 목적지로 라우팅된다. 이 때 서브넷 마스크가 사용되는데, 이 서브넷 마스크를 통해서 선택된 비트들만 확인하여 주소를 알 수 있게 된다. (물론 속도가 빨라진다..) C 클래스 서브넷을 사용하는 대역에서.....

Backend/Network 2012.04.12

TCP Handshake

전에 TLS 핸드셰이킹에 대해서 포스팅을 했었는데.. TLS가 기반을 두고있는 TCP에 대한 포스팅은 정작 하지 않았다는것을... 방금 깨달았다. 우선 TCP 개념부터 간단히 정리하자면, TCP, (Transmission Control Protocol) 전송 제어 프로토콜 인터넷에서 데이터를 보내기 위해서 IP와 함께 사용되는 프로토콜이다. TCP는 UDP와 같은 계층에 존재하며, UDP와 다른 것은 보다 정확한 데이터 송수신이 이루어 진다는 점이다. "신뢰성" 프로토콜 이라고 할 수 있다. 위키 백과 참조 > 바로가기 계층 구조도는 다음과 같다. Higher Level Telnet, FTP, HTTP, SIP ...... TCP TCP, UDP, ,,,,,, Internet Protocol IP & I..

Backend/Network 2012.04.12

FTP - 두 번째.

지난 포스팅에서 언급했던 FTP에 대해 더 자세히 포스팅하려고 한다. FTP도 Server-Client 모델이기 때문에 당연히 요청-응답 패킷이 존재한다. 그리고 이 FTP 는 TCP 패킷 위에 올라간다. 오늘 포스팅할 내용은, FTP요청/응답에 대한 것이다. FTP 요청/응답은 아주 심플하다. TCP 패킷 위에, 요청/응답 코드 및 메시지가 전부이다. 다음은 RFC문서를 참고하여 자주 사용하는 FTP 요청을 정리한 테이블이다. 열씨미 정리했으므로 이미지로 투척! ㅋㅋㅋ 보통 FTP 어플리케이션을 이용하거나, 커맨드를 사용하는데, 예를 들어 파일을 업로드하게 되면 커맨드로는 이렇게 사용하지만, 패킷 상으로는 STOR filename 형식이 된다. 요청이 있으면 이에 따르는 응답도 존재한다. 아래는 자주 ..

Backend/Network 2012.04.12
반응형