본문 바로가기
반응형

CS(Computer Science)/네트워크9

[네트워크] HTTPS 통신방법: 대칭키와 비대칭키 HTTPS는 HTTP에 보안 기능을 추가해 어떤 웹사이트에 보내는 정보를 다른 누군가 훔쳐보지 못한다는 점에서 안전하다. 이것을 가능하게 하는 기술에는 대칭키와 비대칭키 방식이 있다. 대칭키 방식은 메시지를 보내는 쪽과 메시지를 받는 쪽이 메시지를 암호화하고, 이를 다시 메시지로 바꾸는 즉 복호화하는 같은 방식으로 공유한다. 둘다 동일한 키를 가지고 암호화 복호화를 하는 것이다 여기서 한 가지 문제가 발생한다 대칭키는 중간에 누가 정보를 가르채도 못 알아보게 하는게 목적인데 한 번은 키를 전송해야한다. 이 때 중간에서 키를 가로 챌 수 있는것이다. 그러면 대칭키가 말짱 도루묵이 된다 그래서 사용하는게 비대칭키 방식이다 공개키라고도 하는 이 방식은 a,b의 키를 가지고 a키로 암호화하면 b키로만 복호화 할.. 2023. 5. 20.
Rest API란 무엇인가? Rest API - 정보들이 주고받아지는데 있어서 개발자들 사이에 널리 쓰이는 일종의 형식 - 컴퓨터의 기능을 실행시키는 명령어 - 특정기술이 아니라 http의 잠재력을 최대한 이용하기 위한 모범 사례 - HTTP 요청을 할 때 어떤 URI에 어떤 method를 사용할지에 대한 개발자들 사이에서 널리 사용되어지는 약속 - 각 요청이 어떤 정보나 동작을 위한것인지 쉽게 추론 가능 즉 통신할때 리소소는 uri, 행위는 메소드, 결과는 응답코드로 http가 가지고있는 의미를 잘 활용하는것 rest : 자원을 이름으로 구분해서 자원에 대한 상태, 정보를 주고받는 것, HTTP Method를 활용해서 해당 자원에 대한 CRUD를 적용하는 것 API - 컴퓨터 기능을 실행시키는 방법 - 지정된 형식으로 요청과 응답.. 2023. 5. 20.
HTTP 통신 request, response 요청 메시지 `GET /1.html HTTP/1.1` - `GET` : 메소드. 웹 브라우저와 웹 서버가 어떤 방식으로 통신할 것인가 - `GET`은 데이터를 웹 서버로 가져올 때 씀. 주소 치고 엔터 치는 것 - `POST` 는 로그인 전송 버튼 누르면 데이터 전송 - `/1.html` : 웹 서버에게 요청하는 정보 - 웹 서버는 `/1.html`을 보고서 그것에 따라 웹 브라우저가 요청한 정보를 응답해주게 됨 - `HTTP/1.1` : 웹 브라우저가 현재 사용하고 있는/사용할 수 있는 HTTP의 버전이 1.1 `Host: localhost:8080`이라는 이 부분부터는 Request Header - `Host: localhost:8080`: 여러 가지 Request Headers가 있지만 그 중에서 .. 2023. 5. 20.
API란 무엇인가? API(Application Programming Interface)란 무엇인가? 한 프로그램에서 다른 프로그램으로 데이터를 주고받기 위한 방법이다. 예를 들어 식당메뉴판이라 생각하면 된다. 메뉴판을 보고 주문하는것처럼 식당과 손님이 음식을 주고받기 위한 방법 웹툰을 보내주는 프로그램을 만든다 해보자. 먼저 어떤 웹툰이 있는지 메뉴판을 만들어야한다. 이 메뉴판이 웹툰 서버와 손님이 웹툰을 주고받기 위한 방법인 웹툰서비스 API이다. app.get('/detail/"id',function(req,res){ db.collection('웹툰').findOne({_id:parseInt(요청.params.id)},function(에러, 결과){console.log(결과); res.render('detail.ejs.. 2023. 2. 17.
[네트워크] TCP 세그먼트 구조와 통신원리 TCP 1. point-to-point: TCP 소켓 한 쌍끼리의 통신을 책임진다. 2. 신뢰성 3. send, receive buffers 4. 흐름제어: 받을 수 있는 양에 맞게 보내야함 TCP 세그먼트 구조 receive window: window 빈 공간 체크 A가 B에게 c를 보내려고한다. Tcp에서 ack 10의 의미는 9번까지 잘 받았고 10번을 기다리고 있다는 뜻이다. 자료출처 컴퓨터 네트워크, 이석복 2023. 2. 10.
[네트워크] TCP Pipelining 방식 : Go-Back-N & selective repeat 2023.01.29 - [CS(Computer Science)/네트워크] - [네트워크] 애플리케이션 계층에서 신뢰성 있는 통신 원리 [네트워크] 애플리케이션 계층에서 신뢰성 있는 통신 원리 애플리케이션 계층 간의 통신에서 신뢰성은 어떻게 보장될까? 각 채널별로 필요한 메커니즘에 대해 알아보자. Rdt1.0 에러 없는 완벽한 채널 sender은 패킷 보내고 receiver는 패킷을 받는 과정에서 whdgus928.tistory.com 이전 시간에 학습했던 패킷을 하나씩 보내는 방식은 실생활에서 사용하기 어렵다. 그래서 신뢰성 있는 통신에서 패킷을 더 효율적으로 송수신하기 위해 pipelining을 사용한다. go-back-N과 selective repeat는 실제 사용하는 프로트콜은 아니지만 pipeli.. 2023. 2. 9.
[네트워크] 애플리케이션 계층에서 신뢰성 있는 통신 원리 애플리케이션 계층 간의 통신에서 신뢰성은 어떻게 보장될까? 각 채널별로 필요한 메커니즘에 대해 알아보자. Rdt1.0 에러 없는 완벽한 채널 sender은 패킷 보내고 receiver는 패킷을 받는 과정에서 패킷 에러, 패킷 상실이 발생하지 않는 완벽한 채널이다 이 때는 오류가 없기에 특별한 메커니즘이 필요 없다. 하지만 비현실적이다. Rdt2.0 패킷 유실은 없고 에러는 있는 채널 아까와 달리 좀 더 현실적인 상황이다. 이 때는 에러 탐지와 에러를 알려주는 피드백 메커니즘이 필요하다, receiver는 에러를 판단하고 ACK or NAK의 피드백을 준다. NAK의 피드백이 온다면 sender는 패킷을 재전송한다. 여기서 sequence number라는 개념이 등장한다. 시퀀스 넘버는 패킷을 구분하기 위.. 2023. 1. 29.
[네트워크] 애플리케이션 계층 - 소켓, TCP, UDP 소켓이란? 소켓: 클라이언트 프로세스와 서버 프로세스의 통신이다 소켓이 통신하는 원리를 알아보자 1. socket: 웹 서버가 소켓을 생성한다 2. bind: 특정 포트에 연결한다 3. listen: 이 용도로 사용하겠다 4. accept: 클라이언트로부터 요청받을 준비 됐다, 여기서 클라이언트의 ip와 port를 저장한다, 서버는 클라이언트로부터 커넥션이 들어올 때까지 멈춰있는다. 5. 클라이언트 요청이 들어오면 연결 6. 데이터를 주고받는다 7. 통신 끝나면 close 시켜준다 ※ 클라이언트는 아무 port나 사용해도 돼서 bind가 필요없다 TCP와 UDP의 역할 멀티플렉싱: 여러 소켓으로부터 데이터를 모으는것, 헤더로 데이터를 감싼다 디멀티플렉싱: 받은 세그먼트를 배달하는 것 - 세그먼트를 메시지.. 2023. 1. 29.
[네트워크] 컴퓨터 네트워크 기본 지식 인터넷 전송서비스 TCP - 신뢰성, 순서대로, 속도에 맞게, 혼잡 조절, 비용이 든다 - 데이터 유실되면 재전송 - ex) 중요한 서류 보낼 때 사용하는 등기우편 UDP - 비신뢰성, 연결성, 데이터가 유실돼도 괜찮을 때 - ex) 보이스톡, 일반우편 ※ 프로토콜: 서로간의 약속 packet-switching - 현재 인터넷 방식 - 라우터를 거치면서 한 묶음으로 다니는데 계속 클릭하지 않고 뉴스보고 다음뉴스 보고 이런 식 - 분산되서 사용, 제한 없다 - 단점: 동시에 접속하면 문제발생 circuit switching - 유선전화망, 미리 설치해놓음 processing delay: 패킷 검사하고 목적지 확인까지의 시간지연 transmission delay: 큐에서 나가는데 시간 propagation .. 2023. 1. 28.
728x90