목록Computer & Data/Network (11)
이야기박스
개발자 또는 학생으로서 네트워크를 접하다 보면 필연적으로 OSI 7 계층에 대한 이야기가 꼭 나오게 됩니다. 면접에서도 종종 나올 수 있는 내용이지요. 신입 면접에서는 자주 등장하고 경력 면접에서도 지원자가 네트워크 지식이 약하다 생각되면 종종 물어보기도 합니다. 그렇기에 이번 포스팅에서는 OSI 7 Layer 에 대하여 알아보도록 하겠습니다. 이 포스팅을 거친 독자분들은 시험, 면접도 잘 보실 것이라 믿고 현업에서 일하시는 분들도 복습할 수 있는 좋은 기회가 될 것이라 믿습니다. OSI란 무엇이고 왜 중요한가요? OSI는 `Open Systems Interconnection` 의 약자입니다. 이를 직역하면, OSI 7 Layer란 것이 시스템 간 통신에 대하여 다룬 내용이란 걸 유추해 볼 수 있습니다...
# 개요 소프트웨어 개발자라면 누구나 사용해 보았을 로드밸런서, 그리고 로드밸런서를 지나쳐 온 요청에서 Client IP를 구하는 내용을 포스팅으로 정리해보겠습니다. 인프라 전문가가 아닌, 이용자의 시선에서 포스팅을 작성하였고 예제로 사용된 코드는 자바 언어를 사용하고 있지만 수도 코드에 가깝습니다. # 로드밸런서란? 서버 부하 분산을 위해 사용하는 것 대부분 L7 로드밸런서를 사용하지만 이전에는 L4를 많이 사용하였다고 합니다. 여기서 L7/L4는 OSI Layer를 의미합니다. OSI Layer가 궁금하시다면 이야기박스의 OSI 7 Layer 포스팅을 참고 해주세요~ L4와 L7은 모두 IP와 Port를 이용하여 로드 밸런싱을 하지만 L7 로드밸런서에서는 추가적으로 패킷의 정보를 이용한다고 합니다. ..
netty 서버에 TLS 인증서 세팅을 하는 과정에서 다음 에러가 발생한 적이 있습니다. Caused by: java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : algid parse error, not a sequence at sun.security.ec.ECKeyFactory.engineGeneratePrivate(ECKeyFactory.java:169) at java.security.KeyFactory.generatePrivate(KeyFactory.java:372) at io.netty.handler.ssl.SslContext.getPrivateKeyFromByteBuffer(SslCo..
배경netty-grpc 서버의 ssl 통신을 시도하는 도중, 에러가 발생하였다.해당 에러 코드Caused by: javax.net.ssl.SSLHandshakeException: General OpenSslEngine problemCaused by: java.security.cert.CertificateException: No subject alternative DNS name matching localhost found. 로그 레벨을 trace로 변경 후, 찍어보니2018-09-07 15:01:29 DEBUG: io.netty.util.internal.NativeLibraryLoader - Unable to load the library 'netty_tcnative_windows_x86_64', try..
참조 글https://d2.naver.com/helloworld/47667 자세하게 앞으로 쓸 것
"SSLProtocolException: handshake alert: unrecognized_name" https api를 사용하려고 하던 차에 발생한 에러였다. 발생 배경- 요청을 통해 IP를 해당 API Server에 등록- 웹 브라우저를 통한 요청은 잘 이루어짐- 포스트맨을 이용한 요청도 문제 없음- 타 프로그램을 통한 요청은 위의 에러 발생 ( 생자바 프로그램, embulk ) 구글 검색을 하다보니 SNI extension 옵션을 꺼주면 해결될 수 있다고 함. 1. jvm args 로 제공-Djsse.enableSNIExtension=false 2. 코드상에서 runtime 중 실행System.setProperty("jsse.enableSNIExte..
하나의 도메인에서 많은 호스트들의 트래픽을 처리하는 것은 그다지 비효율적이고 현실적이지 않습니다. 그렇기 때문에 좀 더 작은 브로드캐스트 도메인을 만들어 호스트들을 잘 처리할 필요가 있습니다. 이처럼, IP 라우터를 경계로 IP 네트워크를 분리한 것을 서브넷(Subnet)이라 합니다. 그리고 IP 주소의 어떤 부분이 이 서브넷 ID인지 정의하는 새로운 값이 필요하게 되었습니다.이를 서브넷 마스크(Subnet Mask)라고 합니다. 서브넷 마스크는 32비트의 값으로 네트워크 ID와 호스트 ID를 구분하는 역할을 합니다.- 네트워크 ID의 모든 비트는 1- 호스트 ID의 모든 비트는 0 ○ 서브넷 마스크의 표기 주소 클래스 비트 표기 10진수 표기 네트워크 접두어 Class A 11111111 0000000..
1. Flow Control수신측이 송신측보다 속도가 빠른 것은 아무런 문제가 되지 않지만, 송신측이 수신측보다 빠르다면 문제가 발생할 수 있습니다. 예를 들어, 수업을 듣는 A, B라는 학생이 있다고 해봅시다. A는 똑똑하여 교수의 설명을 듣는 즉시 이해하고 받아들입니다. 수업내용이라는 데이터가 쌓일 여유도 없이 흡수하고 있습니다. 반면 B 학생은 이해가 A에 비하여 느립니다. 이전 수업내용을 이해하기 전, 새로운 내용이 들어오게 됩니다.A의 경우는 문제가 없지만, B의 경우는 이전 내용을 처리하다가 새로운 내용을 놓칠 수 있습니다. 이처럼 수신측이 더 느릴경우 발생하는 문제점을 대처하기 위하여, 강제로 송신측의 데이터 전송을 조절하는 방법입니다. 1) Stop and Wait매번 전송한 패킷에 대하여..